我一直在寻找很长时间,以找到比我更智能的解决方案,以收集数组中项目的索引和值。我无法直接搜索该项目,因为字符串中总会有一些其他字符。这是我想要做的一个例子。
// logcontent = ["f", "red", "frs", "xyr", "frefff", "xdd", "to"]
string lineData = "";
int lineIndex = 0;
foreach (var item in logContent.Select((value, index) => new { index, value }))
{
string line = item.value;
var index = item.index;
if (line.Contains("x"))
{
lineData = line;
lineIndex = index;
break;
}
}
我只想得到下一个项目
lineData = "xyr";
lineIndex = 3;
使用 linq 的FirstOrDefault
:
var result = logContent.Select((value, index) => new { index, value })
.FirstOrDefault(item => item.value.Contains("x"));
如果没有这样的项目,你会得到null
。
如果使用 C# 7.0,您可以使用命名元组:
(int lineIndex, string lineData) = logcontent.Select((value, index) => (index, value))
.FirstOrDefault(item => item.value.Contains("x"));
然后 o 带有lineIndex
或lineData
直接的东西,就像你使用原始版本一样
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句