2014-03-12 65 views
2

我有一個名爲列表的IEnumerable列表。它使這些樣本值:如何獲取IEnumerable列表值?

enter image description here

我想訪問並分配給任何變量這些計數,開始和結束值,每當我想要的。我怎樣才能做到這一點?

+1

並不清楚你的要求與Linq訪問列表。您可以*通過從對象中讀取值來隨時訪問這些值。 – Maarten

+0

你不成功的嘗試是什麼? –

+1

不會'list [i] .Count' /'list [i] .Start' /'list [i] .End' work ??? – dasblinkenlight

回答

7

IEnumerable本身不具有CountStart,或者End。它的元素這樣做,所以您需要確定要從中讀取這些值的集合中的元素。例如,讀取第一個元素的值:

var firstCount = list.First().Count; 
var firstStart = list.First().Start; 
var firstEnd = list.First().End; 

或者,如果你想獲得的集合所有Count值,像這樣:

var allCounts = list.Select(c => c.Count); 

你操作關於元素的集合,而不是單個元素。因此,要從任何特定元素獲取信息,您首先需要從集合中識別它。有lots of methods你可以鏈接在一起,以確定任何給定的元素或元素集。

+0

謝謝。這是工作。 – 1teamsah

+0

@ team16sah:請注意,某些方法會在某些情況下拋出異常。例如,如果集合爲空,'First()'會拋出異常。值得修補所有可用的'IEnumerable '擴展,並瞭解它們的行爲。將它們鏈接在一起爲查詢集合提供了一種相當強大的語言。 – David

1

使用loop

foreach(var item in list) 
{ 
    var count = item.Count; 
} 

或者使用ToList並將其轉換爲List<T>那麼你可以用索引來訪問你的價值:

var myList = list.ToList(); 
var count = myList[0].Count; 

此外,如果你知道類型,你可以投你IEnumerableIList<T>才能使用索引。

-1

嘗試:

list.Count() 
list.First() or list.FirstOrDefault() 
list.Last() or list.LastOrDefault() 
1

有可能使用命名空間

using System.Linq; 

像這樣

var firstListElement = list.ElementAt(0); 
var firstListElementCount = firstListElement.Count; 
// do more stuff with my first element of the list