Tag: linq

如何从字符串创建LINQ查询?

我是LINQ的新手,需要一些编码方面的帮助。 目前,我有一个字符串和一个var变量。 string temp = “from product in myEntities.Products where product.Name.Contains(_Name) select product”; var _Products = temp; LvProducts.DataSource = _Products; LvProducts.DataBind(); 基本上,我想要做的是能够通过预先将其分配到字符串中来创建自定义/复杂的LINQ查询。 完成编写后,我将字符串分配给var变量。 但是,这显然是行不通的。 因此,任何人都可以帮助我吗?

在C#中创建一个独特的自定义类型列表

我收到一个entity framework类型列表,并希望只返回List中的不同值。 我正在使用以下方法,但它并没有统一列表。 有什么建议? Param: List flags List distinctFlags = flags.Distinct().ToList(); Flag的值如下:ID,Flag,FlagValue。 我可以在这个例子中使用linq吗? 谢谢。

将此LINQ表达式转换为Lambda

大家好,我很难将下面的linq表达式(左连接实现)转换为lambda表达式(用于学习)。 var result = from g in grocery join f in fruit on g.fruitId equals f.fruitId into tempFruit join v in veggie on g.vegid equals v.vegid into tempVegg from joinedFruit in tempFruit.DefaultIfEmpty() from joinedVegg in tempVegg.DefaultIfEmpty() select new { g.fruitId, g.vegid, fname = ((joinedFruit == null) ? string.Empty : joinedFruit.fname), vname = ((joinedVegg == null) […]

枚举本质上不是IEnumerable的集合?

当你想递归枚举一个分层对象,根据一些标准选择一些元素时,有许多技术的例子,比如“展平”,然后使用Linq进行过滤:如下所示: 链接文字 但是,当你枚举类似Form的Controls集合或TreeView的Nodes集合时,我一直无法使用这些类型的技术,因为它们似乎需要一个参数(对于扩展方法),这是一个IEnumerable集合:传入SomeForm.Controls不编译。 我发现最有用的是: 链接文字 这为您提供了Control.ControlCollection的扩展方法,其中包含IEnumerable结果,然后您可以使用Linq。 我修改了上面的例子来解析TreeView的节点没有问题。 public static IEnumerable GetNodesRecursively(this TreeNodeCollection nodeCollection) { foreach (TreeNode theNode in nodeCollection) { yield return theNode; if (theNode.Nodes.Count > 0) { foreach (TreeNode subNode in theNode.Nodes.GetNodesRecursively()) { yield return subNode; } } } } 这是我现在使用扩展方法编写的代码: var theNodes = treeView1.Nodes.GetNodesRecursively(); var filteredNodes = ( from n in theNodes where […]

如何使用LINQ获取数组中最高值的索引?

我有一个双打数组,我想要最高值的索引。 这些是我到目前为止提出的解决方案,但我认为必须有一个更优雅的解决方案。 想法? double[] score = new double[] { 12.2, 13.3, 5, 17.2, 2.2, 4.5 }; int topScoreIndex = score.Select((item, indx) => new {Item = item, Index = indx}).OrderByDescending(x => x.Item).Select(x => x.Index).First(); topScoreIndex = score.Select((item, indx) => new {Item = item, Index = indx}).OrderBy(x => x.Item).Select(x => x.Index).Last(); double maxVal = score.Max(); topScoreIndex = […]

Linq to XML – 更新/更改XML文档的节点

我有两个问题: 1.我已经开始使用Linq来处理XML,我想知道是否可以通过Linq更改XML文档。 我的意思是,有什么喜欢的 XDocument xmlDoc = XDocument.Load(“sample.xml”); update item in xmlDoc.Descendants(“item”) where (int)item .Attribute(“id”) == id … 2.我已经知道如何通过简单地使用创建和添加新的XMLElement xmlDoc.Element(“items”).Add(new XElement(……); 但是如何删除单个条目? XML示例数据:

使用Linq和2D数组,选择未找到

我想使用Linq查询2D数组,但是我收到一个错误: 找不到源类型’SimpleGame.ILandscape [ , ]’的查询模式的实现。 找不到“选择”。 您是否缺少对’System.Core.dll’的引用或’System.Linq’的using指令? 代码如下: var doors = from landscape in this.map select landscape; 我已经检查过我是否包含了参考System.Core并使用了System.Linq 。 谁能给出一些可能的原因?

解决扩展方法/ LINQ歧义

我正在为ReSharper 4编写一个加载项。为此,我需要引用几个ReSharper的程序集。 其中一个程序集(JetBrains.Platform.ReSharper.Util.dll)包含System.Linq命名空间,其中包含System.Core已提供的扩展方法的子集。 当我编辑代码时,它会在这些扩展之间产生歧义,因此我不能使用OrderBy 。 我该怎么解决这个问题? 我想使用核心LINQ扩展,而不是ReSharper的扩展。 尝试编译时出现以下错误: 以下方法或属性之间的调用不明确:’ System.Linq.Enumerable.OrderBy(System.Collections.Generic.IEnumerable , System.Func)’ and ‘System.Linq.Enumerable.OrderBy(System.Collections.Generic.IEnumerable, System.Func )’ 编辑:我尝试了下面的建议,遗憾的是没有运气。 同时,我通过删除对System.Core引用来“解决”问题。 这样我就可以使用ReSharper DLL文件提供的扩展。 我上传了一个示例程序 ,我刚刚导入了我需要的ReSharper DLL文件。 我将System.Core的别名更改为SystemCore ,添加了extern alias指令,但它仍然无法正常工作。 如果我错过了什么,请告诉我。 PS参考是安装在”C:\Program Files\JetBrains\ReSharper\v4.1\…”默认directroy中的ReSharper v4.1 DLL文件。

除Contains()运算符外,本地序列不能用于查询运算符的LINQ to SQL实现

我在我的项目中使用LINQ,我的代码是: var SE = from c in Shop.Sections join c1 in obj.SectionObjects on c.SectionId equals c1.SectionId select c; dataGridView1.DataSource = SE; 但我在行dataGridView1.DataSource = SE;遇到此错误dataGridView1.DataSource = SE; 错误信息是: 除Contains()运算符外,本地序列不能用于查询运算符的LINQ to SQL实现。

LINQ to SQL in in和not in

LINQ to SQL中有什么和not in等于? 例如 select * from table in ( …) and select * from table not in (..) 什么等于LINQ to SQL中的上述语句?