这个问题已经有了答案:
How to check if all list items have the same value and return it, or return an “otherValue” if they don’t?
9个答案
下面检查字符串数组中的所有值是否相等,忽略大小写

string [] StringArray = new string[]{"xxx","xXx","Xxx"};
bool ValuesAreEqual = false;
for(int i= 0;i<StringArray.Length;i++)
{
    if(i>=1)
    {
        ValuesAreEqual = StringArray[0].Equals(StringArray[i],StringComparison.InvariantCultureIgnoreCase);
        if(!ValuesAreEqual)
        {
            break;
        }
    }
}

我怎么能用linq写这个?

最佳答案

如果你想知道是否所有都相等Enumerable.All是有效的和可读的:

string firstItem = StringArray[0];
bool allEqual = StringArray.Skip(1)
  .All(s => string.Equals(firstItem, s, StringComparison.InvariantCultureIgnoreCase));

All也会在返回false的第一个比较中中断。注意,我使用了静态string.Equals来防止null对象上出现空引用异常。
顺便说一下,循环是不正确的,因为您开始在索引2而不是1进行比较:
if(i > 1 ) // indices are zero based
{
    // ...
}

08-27 01:13
查看更多