此代码区分大小写,如何使其不区分大小写?
return HeaderNames.Length == fileLine.Count &&
HeaderNames
.Select(headItem => fileLine[Array.IndexOf(HeaderNames, headItem)] == headItem)
.All(i => i);
感谢您的回答/
答案 0 :(得分:0)
没有理由将数据索引回数组以获得该位置,因此有Select
版本。您可以使用String.Equals
并传递StringComparison
选项:
return HeaderNames.Length == fileLine.Count &&
HeaderNames.Select((headItem, i) => fileLine[i].Equals(headItem, StringComparison.OrdinalIgnoreCase)).All(i => i);
答案 1 :(得分:0)
如何使用FindIndex
代替IndexOf
。
我假设你有array
的{{1}}
strings
示例强>:
Array.FindIndex(HeaderNames, t => t.IndexOf(headItem, StringComparison.InvariantCultureIgnoreCase) >=0);
<强>输出强>
1
注意:您也可以在上述建议中使用var a = new string[]{"green","red"};
var idx = Array.FindIndex(a, t => t.IndexOf("Red", StringComparison.InvariantCultureIgnoreCase) >=0);
Console.WriteLine(idx);
代替string.Equals
t.IndexOf
虽然它将是一个长嵌套t=>string.Equals(t, headItem, StringComparison.InvariantCultureIgnoreCase)
。
修改
如果你想找到确切的字符串,即不希望从«红色»得到« ed »的索引作为数组中存在的项目。使用string.Equals。