Tag: linq

在LINQ中使用DataGridViewRowCollection对象

我想使用扩展方法和lambda表达式在LINQ表达式中使用DataGridViewRowCollection 。 不幸的是,扩展方法适用于IEnumerable类型, DataGridViewRowCollection没有实现。 有趣的是,我可以在这里使用类似SQL的语法LINQ: IEnumerable lRows = from DataGridViewRow row in dgvGrid.Rows select row; 在这之后,我可以使用LINQ扩展方法: foreach (DataGridViewRow lRow in lRows.Where(row => row.index > 4)) { … } 有没有什么办法可以将我的DataGridViewRowCollection转换为IEnumerable而不使用那个长的第一个语句? 同样的事情适用于DataGridViewCellCollection和DataGridViewColumnCollection 。 PS。 我正在使用.net framework 3.5

如何将System.Linq.Enumerable.WhereListIterator 转换为List ?

在下面的示例中,如何轻松地将eventScores转换为List以便我可以将其用作prettyPrint的参数? Console.WriteLine(“Example of LINQ’s Where:”); List scores = new List { 1,2,3,4,5,6,7,8 }; var evenScores = scores.Where(i => i % 2 == 0); Action<List, string> prettyPrint = (list, title) => { Console.WriteLine(“*** {0} ***”, title); list.ForEach(i => Console.WriteLine(i)); }; scores.ForEach(i => Console.WriteLine(i)); prettyPrint(scores, “The Scores:”); foreach (int score in evenScores) { Console.WriteLine(score); }

从类型集合中获取公共基类的最简单方法

我正在构建一个自定义属性网格,用于显示集合中项目的属性。 我想要做的是只显示网格中每个项目中常见的属性。 我假设最好的方法是找到集合中每种类型的公共基类并显示它的属性。 有没有更简单的方法? 你能给我一个最佳方法的代码示例吗?

使用LINQ将字符串拆分为N长度字符串列表

我知道String.Split的概念之前已经通过多种不同的方法得到了解决,但我对这个问题的LINQ解决方案特别感兴趣。 我试图编写一个扩展类来处理拆分,但两次尝试都有一些重大问题。 所以对于以下内容: string s = “ABCDEFGHIJKLMNOPQRSTUVWX”; var results = s.SplitEvery(4); 我想要一个列表,如:{“ABCD”,“EFGH”,“IJKL”,“MNOP”,“QRST”,“UVWX”} 这是我的扩展类: public static class Extensions { public static List SplitEvery(this string s, int n) { List list = new List(); var Attempt1 = s.Select((c, i) => i % n== 0 ? s.Substring(i, n) : “|”).Where(x => x != “|”).ToList(); var Attempt2 = s.Where((c, […]

LINQ:仅当值不为null时才添加where子句

我知道一种典型的方式是这样的: IQueryable query = from staff in dataContext.Staffs; if(name1 != null) { query = from staff in query where (staff.name == name1); } 但是,从我们从其他开发人员手中接过的程序中,我们看到了这样的代码: IQueryable query = from staff in dataContext.Staffs; query = from staff in query where (name1 == null || staff.name == name1); 如果这是一个普通的SQL语句,我肯定会说第二个是不好的做法。 因为当name1为null时,它会向查询添加无意义的where子句。 但我是LINQ的新手,所以我不确定LINQ是否有所不同?

在asp.net中排序gridview的列c#

任何人都可以告诉函数在c#asp.net中对gridview的列进行排序。 gridview的数据绑定来自使用linq创建的datacontext。 我想单击列的标题来对数据进行排序。 谢谢!

此代码是否真的导致“访问修改后的闭包”问题?

采用以下代码,Resharper告诉我voicesSoFar和voicesNeededMaximum导致“访问修改后的闭包”。 我读到了这些,但令我困惑的是,Resharper建议通过在LINQ查询之前提取变量来解决这个问题。 但这就是他们已经到了的地方! 如果我只是在int voicesSoFar = 0之后添加int voicesSoFar1 = voicesSoFar Resharper就会停止抱怨。 是否有一些我不理解的奇怪逻辑使得Resharper的建议正确无误? 或者有没有办法在这样的情况下安全地“访问修改后的闭包”而不会导致错误? // this takes voters while we have less than 300 voices int voicesSoFar = 0; int voicesNeededMaximum = 300; var eligibleVoters = voters.TakeWhile((p => (voicesSoFar += p.Voices) < voicesNeededMaximum));

如何动态组合条件?

此问题是对已经回答的问题的增强如何在列表中应用多个过滤条件(同时)? 在上面提到的问题中,我们有一个方法,在所有规范上应用AND运算符。 这是通过在规范上使用LINQ All运算符来实现的。 public static List GetProductsUisngAndFilters(List productList, List<Specification> productSpecifications) { return productList.Where(p => productSpecifications.All(ps => ps.IsSatisfiedBy(p))).ToList(); } 我们需要创建一个能够执行AND , OR和NOT规范(以及它的混合)的新方法(GetProductsUisngDynamicFilters)。 知道怎么解决这个问题吗? 过滤方法 public static class ProductFilterHelper { public static List GetProductsUisngAndFilters(List productList, List<Specification> productSpecifications) { return productList.Where(p => productSpecifications.All(ps => ps.IsSatisfiedBy(p))).ToList(); } } 客户 class Program { static void Main(string[] args) { List […]

LINQy检查集合中的任何对象是否具有相同属性值的方法

我有一个具有属性Id的类代理 给定一组Agent,我需要检查它们中是否有任何重复的ID。 我目前正在使用哈希表执行此操作,但我正在尝试使用Linq-ified,这样做的好方法是什么?

使用linq将数据添加到现有xml文件

我是.net初学者。 我需要向xml文件添加一些数据 xml文件是: — 1st level /* i dont want to create this because this exists */ — 2nd level Toothpaste Colgate 12 10 Toothpaste Pepsodent 20 12 我需要补充一下 productname –> Toothpaste brandname –> CloseUp quantity –> 16 price –> 15 到各自的标签。 我现在面临的问题是我需要深入两个级别才能写入各自的标签,我不知道该怎么做。 我尝试了下面的代码:( 不工作 ) XDocument doc = new XDocument( new XElement(“stock”, /* how […]