3

myclass がいくつかのプロパティで定義されているリストがあります

List<MyClass> myClassList = new List<MyClass>();
myClassList.Add(new MyClass() { Id = 1, Name = "My first test", Key = "First" });
myClassList.Add(new MyClass() { Id = 2, Name = "My second test", Key = "Second" });

次に、パス、つまり c:\my Folders\company name\My First Test を取得します。これを、正規表現を使用して文字列配列、つまり myArrayPath に分割します。

特定のプロパティ、つまり Name に基づく myClassList の要素が myArrayPath のいずれかの要素に含まれているかどうかを確認したいのですが、理想的には Key を返したいのですが、myArrayPath の要素の 1 つに一致するオブジェクトを返す場合、これはちょうど良いでしょう。

linq やラムダ式を使用してこれを達成する方法はありますか。

ありがとう。

4

1 に答える 1

11

これは、LINQ を使用すると非常に簡単に実行できます。

var keyResult = myClassList.Where(x=>myArrayPath.Contains(x.Name))
    .Select(x=>x.Key);

配列のリストの形式で必要な場合は、.ToList()またはを追加するだけです。ToArray()それの終わりに。

于 2013-09-20T16:39:21.637 に答える