我有一个名为list的IEnumerable列表.它保留了这些样本值:
我希望随时访问并为任何变量分配这些Count,Start和End值.我怎样才能做到这一点?
在IEnumerable本身不具备Count,Start或End.它是元素,因此您需要识别集合中要从中读取这些值的元素.例如,要读取第一个元素的值:
var firstCount = list.First().Count;
var firstStart = list.First().Start;
var firstEnd = list.First().End;
Run Code Online (Sandbox Code Playgroud)
或者,如果您想获得所有Count值的集合,请执行以下操作:
var allCounts = list.Select(c => c.Count);
Run Code Online (Sandbox Code Playgroud)
您正在操作元素集合,而不是单个元素.因此,要从任何特定元素获取信息,首先需要从集合中识别它.并且有许多方法可以链接在一起以识别任何给定元素或元素集.
用一个loop?
foreach(var item in list)
{
var count = item.Count;
}
Run Code Online (Sandbox Code Playgroud)
或者使用ToList并将其转换为List<T>然后您可以通过索引访问您的值:
var myList = list.ToList();
var count = myList[0].Count;
Run Code Online (Sandbox Code Playgroud)
另外,如果您知道类型,则可以将其强制转换IEnumerable为IList<T>使用索引器。