多くの文字列配列を持つクラスがあります。List<string>
特定のプロパティに対して一意のものを取得できる汎用関数が 1 つ必要です。例:
public class Zoo
{
string Name { get; set;}
string[] Animals { get; set;}
string[] Zookeepers { get; set;}
string[] Vendors { get; set;}
}
List<string>
リスト内の動物を区別する汎用関数が必要ですか? これを一般的なものにしたいので、Zookeepers と Vendors の個別のリストも取得できます。
私はこれを試してきましたが、コンパイルされません:
public static List<string> GetExtendedList(Func<Zoo, string[]> filter)
{
var Zoos = QueryZoos(HttpContext.Current);
return Zoos.Where(z => z.Type == "Active")
.SelectMany(filter)
.Distinct()
.OrderBy(s => s);
}
注: これは以前に尋ねた 2 つの質問に関連していますが、情報を統合するのに問題があります。以前、SelectMany (SO 1229897) を使用してクエリを実行する方法を質問し、SelectManyではなく Select を使用してリストを取得する汎用関数を作成する方法 (SO 1278989) を個別に質問しました。