2017-12-22 12 views
1

私はオブジェクトのリストを扱っています。オブジェクトの1つを選択し、後で使用するために変数に割り当てる必要があります。私は.Find()メソッドをリストの中で使う必要があることを理解していますが、正しいオブジェクトを見つけるためにカッコ内に何を入れる必要があるのか​​分かりません。私はSDKで定義されたクラスを使用してAPIに触れることができます。これは私にとって初めてのことです。ここに私のコードは次のとおりです。オブジェクトのリストで単一のアイテムを見つけるにはどうすればいいですか?

var fileCabinets = org.GetFileCabinetsFromFilecabinetsRelation().FileCabinet; 
foreach (var fc in fileCabinets) 
{ 
    Console.WriteLine("You have access to the file cabinet " + fc.Name + " " + fc.Id + "."); 
} 

fileCabinets.Find(); 

fileCabinetsはタイプFileCabinetのリストです。リスト内のFileCabinetsの1つを選択する必要があります。

+0

あなたは "リスト"の意味を定義しません。 System.Collections.Generic.Listを意味しますか?または他のタイプのリスト?これにより、リスト内の項目を見つけるためにどのメソッドを使用できるかが決まります。言い換えれば、fileCabinetsのタイプは何ですか? – Polyfun

答えて

3
FileCabinet fileCabinet = fileCabinets.SingleOrDefault(x => x.(propertyName) == (valueToMatch)); 
Nameプロパティを使用してリストをフィルタリングするには Find()

var fileCabinet = fileCabinets.Find(x => x.Id == 1); 

に滞在したい場合は、あなたがFirstOrDefault

var fileCabinet = fileCabinets.FirstOrDefault(x => x.Id == 1); 

を使用することができます

@Rainmanのように、名前が一意でない可能性がある場合は、彼のソリューションを使用してください。 Nameプロパティが一意であると確信できる場合は、このプロパティを使用します。

+0

まさに私が探していたもの、ありがとう –

+0

私があなたを手伝ってくれたら、回答として私のポストをマークしてください – Maarten

4

私が正しくあなたの質問を理解していれば、あなたが

var fileCabinet = fileCabinets.FirstOrDefault(x => x.Name == "Sample"); 
+0

あなたはほんの数分で私を倒します。 SingleOrDefaultよりFirstOrDefaultを選択したのはなぜですか? – Maarten

+1

理由はありません。私は、習慣:)と言うだろうこの場合、もちろん私たちはただ一つのアイテムを期待しています。 – lucky

+0

私は必ずしもIdプロパティを使用する必要はないので、私はMaartenのソリューションに行きました。この場合、実際にNameプロパティを使用していて、彼の答えは私にその方法を教えていますが、両方の答えが本当に助けになりました。ありがとう –

関連する問題