通常,如果所有列表都是字符串类型,我会使用:
var allLists = new[] { list1, list2, list3 };
bool result = allLists.All(l => l.Count == allLists[0].Count);
或同等学历。但是,如果List1
的类型为string
,List2
类型为int
& List3
键入double
然后我如何实现上述目标?
显然,在尝试上述方法时Count
不可用。不想走下去的路线:
if(List1.Count == List2.Count && List2.Count == List3.Count etc.
答案 0 :(得分:5)
好吧,你可以简单地使用:
IList[] allLists = { list1, list2, list3 };
请注意,这会将所有List<T>
实例向上转换为非通用接口。
示例:
var list1 = new List<int>();
var list2 = new List<string>();
var list3 = new List<double>();
IList[] allLists = {list1, list2, list3};
bool result = allLists.All(l => l.Count == allLists[0].Count);
答案 1 :(得分:4)
使用List<IList>
或IList[]
,然后您可以应用之前使用的相同逻辑。
var allLists = new List<IList> {list1, list2, list3};
答案 2 :(得分:2)
指定数组类型并运行您使用的相同LINQ应该可以正常工作
var allLists = new IList[] { list1, list2, list3 };