C# 具有不同标准的Linq

C# 具有不同标准的Linq,c#,linq,C#,Linq,我是这样搜索的,但根本无法得到这个结果(我可能使用了不正确的关键字) 我有多个简单的Linq表达式: var items = ErrorList.Where(n => n.CompanyID == SelectedItem.CompanyID); var items = ErrorList.Where(n => n.CompanyID == SelectedItem.CompanyID && n.TaxCode == SelectedItem.TaxCode); 依

我是这样搜索的,但根本无法得到这个结果(我可能使用了不正确的关键字)

我有多个简单的Linq表达式:

var items = ErrorList.Where(n => n.CompanyID == SelectedItem.CompanyID);
var items = ErrorList.Where(n => n.CompanyID == SelectedItem.CompanyID && n.TaxCode == SelectedItem.TaxCode);
依此类推(此linq语句中添加了更多条件)

我希望能够一次性指定我的函数,并根据指定的条件检索项,而不是当前的方法(使用多个if语句)。我以前没有这样做过,但我相信应该是这样的

private System.Collections.IEnumerable Result(Func<>)

我想你应该读一下。这将使您能够通过查询获取、获取许多选项,而QueryOverIt并不真正清楚您要的是什么。你谈论你的“当前方法”,但实际上没有告诉我们那是什么。也许这样做是个好主意。@Mohit:NHibernate和LINQ有什么关系?是什么让你认为OP使用的是NHibernate?当NHibernate使用例如SQL Server和实体框架时,他们将如何解决OP的问题?我们是否确定我们正确地理解了这个问题?我过去一直在寻找答案,我认为这是不可能的,有一些方法可以帮助你实现特定的目标,看看这个例子-@Robert J.:1。回复:“此linq语句中添加了更多条件”。了解如何添加更多条件是很重要的。条件是否会有所不同,例如是否由用户提供?或者您只是为了简洁而简化了代码示例,但查询的属性总是相同的?2.了解数据源是什么也可能变得相关(
ErrorList
)。这是内存中的集合,还是查询数据库?
                switch (sCase)
                    {
                    case 1:
                        sResult = (n => n.CompanyID == SelectedItem.CompanyID);
                        break;
                    case 2:
                        sResult = (n => n.CompanyID == SelectedItem.CompanyID && n.TaxCode == SelectedItem.TaxCode);
                        break;
                    }

                var items = ErrorList.Where(sResult);