2016-10-05 9 views
-1

私はラムダ演算子を理解しようとしています...ここまで私はこれまで何を得ています。ラムダ演算子を使用して特定のプロパティを持つリスト内のオブジェクトを見つけるにはどうすればよいですか?

record_listというList<Record>があります。 Record.UserNameプロパティがUSER1ののリストから除外したいと考えています。

record_list.Remove(record_list.Where(r = r.UserName.ToString() == "USER1")) 

明らかに私は何かを誤解していますが、私は近いと思います。

私は取得していますエラーは次のとおりです。

は、あなたの助けを事前にSystem.Collections.Generic.IEnumerable<Client_SCM_2.Record>

Client_SCM_2.Recordのおかげから変換することはできません!

答えて

2

することは、あなたのオブジェクトを取得するにはIEnumerableを

var User1List = record_list.Where(x => x.UserName.ToString() == "USER1")); 

を返す(ファーストを使用)またはFirstOrDefault(だろう、それはコードの下

var record = record_list.FirstOrDefault(r => r.UserName.ToString() == "USER1"); 
if(record != null) { 
    record_list.Remove(record); 
} 
1

が存在する場合は、リストから削除し、その後、最初のレコードを取得してください)

は、次にレコードを削除

var recordToBeDeleted = User1List.FirstOrDefault(); 
if(recordToBeDeleted != null) //null means no record found 
{ 
    record_list.Remove(recordToBeDeleted) 
} 
あなたが述語に一致するすべてのレコードを削除したい場合は

、私はあなたがラムダのために>あなたが欠落していた、またRemoveRange を必要thionk RemoveAll

record_list.RemoveAll(x => x.UserName.ToString() == "USER1"); 
0
record_list.RemoveRange(record_list.Where(r => r.UserName.ToString() == "USER1")) 

を使用しています。

希望すると便利です。

関連する問題