次のコードを考えると、ある方法と別の方法を選択する違いまたは理由があります。私には、results1 と results2 がほぼ同じプロセスを経るように思えます。何か不足していますか?さまざまなソースベースで両方の方法を見てきましたが、どちらかを選択する正当な理由があるかどうかに興味がありました. ありがとう。
public class Repo<T>
{
IEnumerable<T> items;
public Repo(IEnumerable<T> items)
{
this.items = items;
}
public IQueryable<T> Get()
{
return items.AsQueryable();
}
public IQueryable<T> Get(Expression<Func<T, bool>> predicate)
{
return items.AsQueryable().Where(predicate);
}
}
class Program
{
static void Main(string[] args)
{
var items = new[] { "a", "b", "c" };
var repo = new Repo<string>(items);
var results1 = repo.Get().Where(item => item == "b").ToList();
var results2 = repo.Get(item => item == "b").ToList();
}
}