我正在寻找一种简单快速的方法来检查我的所有 Listitems 是否具有相同的成员值。
foreach (Item item in MyList)
{
Item.MyMember = <like all other>;
}
编辑:
我忘记了一件事:如果这个成员之一(它是一个字符串)是 String.Empty 并且所有其他项目都具有相同的字符串,它也应该是真的!抱歉我忘了这个。
请您参考如下方法:
编辑:好的,在新的要求有
bool allSame = !MyList.Select(item => item.MyMember)
.Where(x => !string.IsNullOrEmpty(x))
.Distinct()
.Skip(1)
.Any();
这避免了您必须先找到一个样本值才能开始的第一步。 (当然,它仍然会在找到第二个值后立即退出。)
它也只迭代一次序列,如果它不是一个真正可重复的序列,这可能很重要。如果是
List<T> 没问题当然。
编辑:消除对
Skip 的担忧,来自文档:
If source contains fewer than count elements, an empty
IEnumerable<T>is returned. If count is less than or equal to zero, all elements of source are yielded.




