如果你有一个字符串“1,2,3,1,5,7”,你可以把它放在一个数组或哈希表或任何被认为最好的。
您如何确定所有值都相同?在上面的例子中它会失败,但如果你有“1,1,1”那就是真的。
答案 0 :(得分:8)
使用lambda表达式可以很好地完成。
对于名为arr
的数组:
var allSame = Array.TrueForAll(arr, x => x == arr[0]);
列表(List<T>
),名为lst
:
var allSame = lst.TrueForAll(x => x == lst[0]);
对于可迭代(IEnumerable<T>
),名为col
:
var first = col.First();
var allSame = col.All(x => x == first);
请注意,这些方法不处理空数组/列表/迭代。然而,这种支持是微不足道的。
答案 1 :(得分:6)
遍历每个值,将第一个值存储在变量中,并将数组的其余部分与该变量进行比较。瞬间失败,你知道所有的值都不一样。
答案 2 :(得分:5)
怎么样......
string numArray = "1,1,1,1,1";
return numArrray.Split( ',' ).Distinct().Count() <= 1;
答案 3 :(得分:1)
我认为使用List<T>.TrueForAll
将是一种灵活的方法。
答案 4 :(得分:1)
不如简单循环有效(因为它总是处理所有项目,即使结果可以更快地确定),但是:
if (new HashSet<string>(numbers.Split(',')).Count == 1) ...