4


クラス A (メンバー FName、LName、Total を含む) のデータを保持する List Say foo があります。LName が「foobar」であるデータのリストを取得する必要があります。

これは簡単な質問に聞こえると思いますが、これは私を怒らせます! 実行時にリストを返すためのメンバーを取得するためです。

前もって感謝します

編集:申し訳ありませんが、リストは動的であり、リストはオブジェクト型です。実行時にのみクラス A 型であることを知っています

4

1 に答える 1

16

LINQ を使用して簡単に実行できます。

using System.Linq;

(...)

List<A> foo = GetFooList();    // gets data
List<A> fooBorItems = foo.Where(a = > a.FName == "foobar").ToList();

または、構文ベースのクエリを使用します。

List<A> fooBorItems = (from a in foo
                       where a.FName == "foobar"
                       select a).ToList();

最初に拡張メソッドList<object>を使用します。Cast<T>すべてのソース コレクション要素をキャストしますA(不可能な場合は例外をスローします)。

List<A> fooBorItems = foo.Cast<A>().Where(a = > a.FName == "foobar").ToList();

またはOfType<A>(キャストできない要素を例外なく、キャストできる要素のみを返します):

List<A> fooBorItems = foo.OfType<A>().Where(a = > a.FName == "foobar").ToList();
于 2013-04-08T06:00:43.977 に答える