以下检查字符串数组中的所有值是否相等,忽略大小写
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;
}
}
}
Run Code Online (Sandbox Code Playgroud)
我怎么能用LINQ写这个?
Tim*_*ter 17
如果你想知道所有是否相同Enumerable.All是有效和可读的:
string firstItem = StringArray[0];
bool allEqual = StringArray.Skip(1)
.All(s => string.Equals(firstItem, s, StringComparison.InvariantCultureIgnoreCase));
Run Code Online (Sandbox Code Playgroud)
All在第一次返回的比较中也会中断false.请注意,我使用静态string.Equals来防止null对象上的空引用异常.
顺便说一句,你的循环是不正确的,因为你开始比较索引2而不是1:
if(i > 1 ) // indices are zero based
{
// ...
}
Run Code Online (Sandbox Code Playgroud)
string[] StringArray = new string[] {"xxx,xXx,Xxx"};
bool areEqual = StringArray.Select(s => s.ToLower()).Distinct().Count()==1;
bool areEqual = StringArray.GroupBy(s => s.ToLower()).Count() == 1;
Run Code Online (Sandbox Code Playgroud)
只是在这里原创:)
| 归档时间: |
|
| 查看次数: |
15139 次 |
| 最近记录: |