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
前のすべての変種。その違いは、objCollection
にアイテムがない場合、は例外をスローしますが、FirstOrDefault
は、にアイテムがない場合はdefault(object)
(途中でnull
)を返します。例を置くため
、これはOrDefault
変異体がどのように使用できるかです:greetingRecommendation.Resolution.Values
のシナリオでは
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
、次のようなものは、コレクションの最初の項目を取得するために使用することができます。
var greeting = greetingRecommendation.Resolution.Values.FirstOrDefault() as string;
Values
プロパティのタイプがICollection<object>
であるとします。
その行がそれを保証します:
Values
宿泊施設にはアイテムを持っていない場合は、例外がスローされません、とdefault(object)
が返されます。
- にキャストできない値が含まれていると問題を避けるため、
Values
の最初の項目はstring
に安全にキャストされます。値をキャストできない場合は、default(string)
(これはnull
)が返されます。
- 変数
greeting
にはnull
またはstring
のいずれかが含まれ、最初の値はValues
です。
LINQを使用できるようにするには、usingディレクティブにusing System.Linq;
を追加することを忘れないでください。
私はアクションで、このようなLINQの操作を見るために、以下のリンクでの.NETフィドルを用意しました:
あなたが投稿する前にあなたの質問への回答を検索してみてくださいましたか?あなたの質問は簡単です。 –
私はいくつかのGoogleを行い、ICollectionにElementAtメソッドがあることがわかりました。もしあなたがアクセスしたい値のインデックスを知っていれば、ElementAtメソッドを呼び出すことができます。これは、foreachループを使用して、より迅速に値を返すと仮定します。拡張メソッドであることに注意してください。 –
私はElementAtを使用しようとしました。利用可能な方法はありません –