カスタム関数でそれらをチェックして、いくつかの要素を取得したいと思います。
私は Person テーブルを持っています:
public class Person
{
public int Id { get; set; }
public DateTime BirthDay { get; set; }
public string Name { get; set; }
...
}
個人リストをフィルタリングするには、myGetAge()
関数と他の関数を使用する必要があります。私の次のコードは機能しません:
public List<Person> FilterPersons(int ageFrom, int ageTo...etc..)
{
var all = Database.Persons.AsQueryable();
all = from item in all
where GetAge(item.BirthDay) > ageFrom
select item;
all = from item in all
where GetAge(item.BirthDay) < ageTo
select item;
// other operations
...
}
そう書けると思います。これを行うためのすべてのステップで:
List<Person> newList = new List<Person>();
foreach (var item in all)
{
var itemAge = Common.GetAge(item.BirthDay);
if (itemAge > AgeFrom)
{
newList.Add(item);
}
}
all = newList.List();
しかし、これは私が考える最良の方法ではありません。なぜなら、多くの基準でフィルタリングする必要があるからです。低速で動作します。
Linq クエリで関数を使用するにはどうすればよいですか?
編集: たとえば、GetAge() 関数を示しました。私はそのような多くの機能を持っています。自分の機能の使い方を知りたかったのです。