您可以使用LINQ以更簡單的方式查詢集合。
讓我們以一個例子如下集合:
var objCollection = (ICollection<object>) new List<object>
{
"Good Morning",
"Good Afternoon",
"Good Night"
};
現在,我們可以提取的姓氏,名字或一個項目在一個特定的指標有以下:
var firstItem = objCollection.First(); // returns "Good Morning"
var lastItem = objCollection.Last(); // returns "Good Night"
var itemAtIndex1 = objCollection.ElementAt(1); // returns "Good Afternoon"
還有OrDefault
所有以前的變種。不同的是,First
將拋出一個異常,如果objCollection
沒有項目,但FirstOrDefault
將簡單地返回default(object)
(這是null
順便說一句)如果objCollection
沒有項目。
對於把一個例子,這是OrDefault
變種如何使用:
var firstItem = objCollection.FirstOrDefault(); // returns "Good Morning"
var lastItem = objCollection.LastOrDefault(); // returns "Good Night"
var itemAtIndex99 = objCollection.ElementAtOrDefault(99); // returns null, because `objCollection` has only three items and the index 99 doesn't exist on it
在greetingRecommendation.Resolution.Values
的情況下,類似如下的可用於檢索集合的第一項:
var greeting = greetingRecommendation.Resolution.Values.FirstOrDefault() as string;
我們假設Values
屬性的類型爲ICollection<object>
。
該行將確保:
- 如果
Values
酒店有沒有項目,沒有會拋出異常,並default(object)
將返回。
Values
屬性中的第一項將被安全鑄造爲string
,以避免發生問題,如果它包含無法鑄造到string
的值。如果該值無法播放,則返回default(string)
(即null
)。
- 變量
greeting
將包含null
或string
,其中第一個值爲Values
屬性的第一個值。
不要忘記在使用指令中添加一個using System.Linq;
以便能夠使用LINQ。
我已經準備了.NET小提琴在下面的鏈接,在行動中看到這樣的LINQ操作:
你有沒有嘗試之前發佈的搜索回答你的問題?你的問題是微不足道的。 –
我做了一些谷歌,我發現ICollection有ElementAt方法。如果你知道你想訪問的值的索引,那麼你可以調用ElementAt方法,並且這個假設可以更快地返回值,然後使用foreach循環。請注意,這是一種擴展方法。 –
我試過使用ElementAt。但沒有辦法可用 –