草庐IT

LINQ_ENABLED

全部标签

c# - 使用 LINQ 构建 Dictionary 轻松访问已安装程序的注册表项

SOFTWARE\Microsoft\Windows\CurrentVersion\UninstallWindows注册表的键由键的子集组成,每个已安装的程序一个。每个程序的键名都被命名为一个明显随机的字符串,这使得查找给定程序的注册表键变得简单易行(不是!)。DisplayName注册表项的值包含程序的名称。我想使用LINQ构建一个字典(Dictionary),对于每个注册表项,映射DisplayName注册表项本身的值。有关如何执行此操作的任何建议?与此同时,我将继续阅读LINQ看看我是否能找到解决方案——这是我第一次真正考虑使用LINQ。我在这里发布我的问题,因为我认为这可能是一

c# - 在 LINQ-to-SQL 中使用跨上下文连接

最初我使用LINQ-to-SQL编写了这个查询varresult=fromwinPatternDataContext.WindowsjoincfinPatternDataContext.ControlFocusonw.WindowIdequalscf.WindowIdjoinpinPatternDataContext.Patternsoncf.CFIdequalsp.CFIdjoinrinResultDataContext.Resultsonp.PatternIdequalsr.PatternIdjoinfiinResultDataContext.IclFileInfosonr.Icl

c# - 在已编译的 LINQ 查询中使用 lambda Include 方法

我目前正在尝试通过预编译来优化程序中的一些LINQ查询。其中一些查询广泛使用了预先加载;这是一个例子:publicstaticFunc>GetAllByName=CompiledQuery.Compile((context,name)=>context.Employees.Include(e=>e.Email).Where(e=>e.LastName==name));使用示例:varemployees=GetAllByName(dbContext,"Bob").ToList();不幸的是,尝试使用它会导致以下错误:LINQtoEntitiesdoesnotrecognizethemet

c# - 如何使用 LINQ-to-SQL 忽略大小写?

我在使用LINQ-to-SQL获取数据时遇到问题。我使用以下代码为我们的网络应用程序查找用户(用户名是电子邮件地址):varreferenceUser=db.ReferenceUsers.SingleOrDefault(rf=>rf.Email==values["emailAddress"]);如果我输入test@test.com我会得到一个ReferenceUser但是如果我输入tESt@tESt.com我不会。如何让LINQ在选择用户时忽略大小写? 最佳答案 是否:varreferenceUser=db.ReferenceUse

c# - LINQ 比较两个列表 - 添加新的、删除旧的、保留相同的列表

我有一个对象A的两个列表(L1,L2),L1用于存储更改前的对象列表(多对多关系)。L2是改变后的关系。我需要保留公共(public)元素但添加新元素并删除不在L2中的元素。我想知道是否有一个我可以与LINQ一起使用的衬垫来完成此操作。如果您需要更多信息,请告诉我。提前致谢 最佳答案 如果我正确理解了您的要求,这应该可行:L1.AddRange(L2.Except(L1));L1.RemoveAll(item=>!L2.Contains(item));不是单线,但足够接近... 关于c#

c# - 使用 OR 的 LINQ WHERE

我使用LINQ像这样创建我的where子句:varquery=fromxincontext.Xsselectx;if(y==...){query=query.Where(x=>x.Y==1);}我有一堆这样的“if....where”语句。我遇到的问题是,所有这些wheres使用AND连接where子句,但我需要我所有的where子句都使用OR。有没有一种简单的方法可以将此代码移植到OR代码中?甚至使用OR执行此操作的最简单方法是什么?谢谢。 最佳答案 你可以这样做:varquery=fromxincontext.Xswhere(x

c# - 多参数linq表达式如何初始化它们的参数?

在此post问题的解决方案是:list.Where((item,index)=>index多参数的概念(即(item,index))让我有点困惑,我不知道正确的词来缩小我的谷歌搜索结果。所以1)那叫什么?更重要的是,2)不可枚举变量是如何初始化的?在这种情况下,index是怎样的?编译为int并初始化为0?谢谢。 最佳答案 Lambda表达式有多种语法选项:()=>...//noparametersx=>...//singleparameternamedx,compilerinferstype(x)=>...//singlepara

c# - 为什么 ForEach Linq Extension 在 List 上而不是在 IEnumerable 上

这个问题在这里已经有了答案:关闭11年前。PossibleDuplicate:WhyistherenotaForEachextensionmethodontheIEnumerableinterface?你好,我的问题是为什么Foreach扩展方法是在List而不是IEnumreable上定义的。我读过EricLippert的article但关键是,如果有这样的方法比List有什么不好呢?

c# - 如何在循环中构建动态 AND OR linq 表达式树

从previous开始我问的问题,我现在正试图弄清楚如何为AND&OR查询构建动态表达式。给定以下字符串数组:string[]ranges=newstring[]{"0-100","100-200","500-1000"};我想在linq表达式中动态地表达这一点——类似于:varv=frompinproductswhere(p.Amount>=0&&p.Amount=101&&p.Amount=500&&p.Amount如何在此循环中动态构建linq表达式?string[]ranges=newstring[]{"0-100","100-200","500-1000"};varquery

c# - 带返回值的动态 Linq 表达式

我需要创建一个动态linq表达式,我开始处理许多示例。我测试了一些和一些工作,有些没有。在这种情况下,我想创建一个如下所示的方法:publicboolCheck(intintvar){if(i>2)returntrue;elsereturnfalse;}现在我写了以下内容:LabelTargetreturnTarget=Expression.Label("label");ParameterExpressionpara=Expression.Parameter(typeof(int),"intvalue");Expressiontest=Expression.GreaterThan(pa