最佳替换方式是什么:
for(int i=0; i<10; i++)
{
if(!members[i].Equals(anotherMembers[i]))
{
return false;
}
}
使用LINQ表达式?
答案 0 :(得分:3)
我认为LINQ不是更具可读性的选项,但一般来说,你需要首先Zip
序列才能处理同一索引的对:
var allSame = members.Zip(anotherMemebers, (x,y)=> Tuple.Create(x,y))
.All(t => t.Item1.Equals(t.Item2)); // or other operation on pairs
正如Habib所指出的,如果你只需要比较序列SequenceEqual可能是更好的选择。
由于@juharr评论.Take(10)
可能需要关闭匹配原始循环,但LINQ版本更宽容 - 您需要检查项目计数以完全匹配原始循环中的所有“超出范围”错误。