linq-to-objects相关内容
LINQ有两种计算可枚举数的方法:Count和LongCount。实际上,这两者之间唯一的区别是,第一个返回int,而第二个返回long。 我不清楚为什么添加了第二种方法。它唯一的用例似乎是处理超过2B个元素的可枚举项。在我看来,这是一个糟糕的决定,原因有几个: 大多数BCL集合都由一维数组支持,这些数组的长度保证适合int。尝试越过它将引发OverflowException/OutO
..
假设我有一个包含整数的列表(var identifiers = Enumerable.Empty())。 使用此列表,我可以将各个项目转换为另一种类型: var castedIdentifiersLong = identifiers.Cast(); var castedIdentifiersString = identifiers.Cast();
..
我在 VS2008 示例 中找到了一个动态 LINQ 示例,它允许您使用类似 SQL 的字符串(例如 OrderBy("Name, Age DESC")) 进行排序.不幸的是,包含的方法仅适用于 IQueryable.有没有办法在 IEnumerable 上获得此功能? 解决方案 刚刚偶然发现这个老歌...... 要在没有动态 LINQ 库的情况下执行此操作,您只需要如下
..
我有 2 个列表.1是产品的集合.另一个是商店中的产品集合. 如果名称与产品中的任何名称匹配,我需要能够返回所有 shopProducts. 我有这个,但它似乎不起作用.有什么想法吗? var products = shopProducts.Where(p => p.Name.Any(listOfProducts.Select(l => l.Name).ToList())).ToL
..
关于何时 DataTable.Select 的任何建议 应该与 LINQ Select 在处理内存数据表时? 我发现 LINQ 语法更简单、更强大,但我不确定是否存在性能或其他问题使 DataTable select 更可取. (我使用的第三方 API 提供了一个从数据库预先填充的 DataTable.我需要在内存中进一步过滤.) 解决方案 根据个人经验,我尽量避免使用 Dat
..
我有一个对象: 公共类客户{公共 int ID { 获取;放;}公共字符串名称 { 获取;放;}公共 int GroupID { 获取;放;}} 我返回一个可能如下所示的列表: ListCustomerList = new List();CustomerList.Add( new Customer { ID = 1, Name = "One", GroupID = 1 } );Custome
..
公开课CourseDetail{公共课程详细信息();公共字符串 CourseId { 获取;放;}公共字符串 CourseDescription { 获取;放;}public long CourseSer { get;放;}}公共类 RefUIDByCourse{public long CourseSer { get;放;}公共双交付剂量{得到;放;}公共双计划剂量{得到;放;}公共字符串 Re
..
从性能的角度来看,您应该使用“嵌套 foreach"还是“lambda/linq 查询"? 解决方案 尽可能编写最清晰的代码,然后进行基准测试和分析以发现任何性能问题.如果您确实遇到性能问题,您可以尝试不同的代码来确定它是否更快(始终使用尽可能真实的数据进行测量),然后判断是否性能的提升值得提高可读性. 在许多情况下,直接foreach 方法将比 LINQ 更快.例如,考虑: va
..
公共类 ClassA{公共字符串 MyString {get;放;}}公开课 ClassB{公共列表我的对象{get;放;}}列表classBList = new List();var results = (from i in classBList select i.MyObjects).Distinct(); 我想要classBList 中所有ClassA 对象的不同列表.我如何使用 LINQ
..
对 LINQ 语法有点小题大做.我正在使用 SelectMany(x => x) 将 IEnumerable> 展平. 我的问题是 lambda 表达式 x =>x.它看起来有点丑.是否有一些静态的“身份函数"对象可以代替 x => 使用?x?类似于 SelectMany(IdentityFunction)? 解决方案 注意:这个答案对于 C# 3 是正确的,但是在某些时候(C# 4
..
var nums = new[]{ 1, 2, 3, 4, 5, 6, 7};var pair =/* 这里有一些 linq 魔法 */; =>对 = { {1, 2}, {3, 4}, {5, 6}, {7, 0} } pairs 的元素应该是双元素列表,或者是一些具有两个字段的匿名类的实例,例如 new {First = 1, Second = 2}. 解决方案 没有任何默认的
..
有一个动态 LINQ 扩展方法库作为示例发布,Visual Studio 2008.我想用 join 方法扩展它.下面的代码在运行时因参数未命中匹配异常而失败.问题出在哪里? public static IQueryable Join(这个IQueryable外部,IEnumerable内部,字符串外选择器、字符串内选择器、字符串结果选择器、params 对象[] 值){如果(内部==空)thr
..
我经常看到人们使用 Where.FirstOrDefault() 进行搜索并获取第一个元素.为什么不直接使用Find()?对方有优势吗?我看不出有什么区别. 命名空间 LinqFindVsWhere{课程计划{静态无效主(字符串 [] args){列表list = new List();list.AddRange(新字符串[]{“项目1","项目 2","项目 3",“项目 4"});字符串 i
..
我有一个订单列表. 我想根据一组订单状态选择订单. 所以本质上select orders where order.StatusCode in ("A", "B", "C") //根据订单状态过滤订单varfilteredOrders = from order in orders.Orderwhere order.StatusCode.????????("A", "B", "C")选择订单
..
概述 我在这个网站上问了很多关于LINQ.我提出的问题广泛而多样,而且背后往往没有太多背景.因此,为了巩固我在 Linq 上获得的知识,我发布了这个问题,以期在我继续了解 LINQ 时使用其他信息来维护和更新它. 我也希望它能够成为其他想要了解 LINQ 的人的有用资源. 什么是 LINQ? 来自 MSDN: LINQ 项目是一个代号.NET 的扩展集包含的框架语言集
..
我想在 DataGridView 中显示客户的会计历史,并且我想有一列显示其余额的运行总计.我这样做的旧方法是获取数据,遍历数据,然后将行一一添加到 DataGridView 并计算当时的运行总数.瘸.我更愿意使用 LINQ to SQL 或 LINQ(如果 LINQ to SQL 不可能的话)来计算运行总数,这样我就可以将 DataGridView.DataSource 设置为我的数据.
..
如果我有一个看起来像这样的类: 公共类项目{公共 int ClientID { 获取;放;}公共 int ID { 获取;放;}} 还有这些物品的集合... List项目 = getItems(); 如何使用 LINQ 返回具有最高 ID 的单个“Item"对象? 如果我这样做: items.Select(i => i.ID).Max(); 我只会得到最高的 ID,当我真正想要返
..
我在字符串中有“按属性排序"的名称.我需要使用 Lambda/Linq 对对象列表进行排序. 例如: 公共类员工{公共字符串名字{set;得到;}公共字符串姓氏 {set;得到;}公共日期时间 DOB {set;得到;}}public void Sort(ref List list, string sortBy, string sortDirection){//示例数据://sortBy
..
我有一个 List(Of DateTime) 项目.如何使用 LINQ 查询检查所有项目是否相同?在任何给定时间,列表中可能有 1、2、20、50 或 100 个项目. 谢谢 解决方案 像这样: if (list.Distinct().Skip(1).Any()) 或 if (list.Any(o => o != list[0])) (可能更快)
..
我有一个带有 属性(ID、名称、代码、价格) 的 Items 类. Items 列表中填充了重复的项目. 例如: 1 Item1 IT00001 $1002 项目 2 IT00002 200 美元3 项目 3 IT00003 150 美元1 件 1 IT00001 100 美元3 项目 3 IT00003 150 美元 如何使用linq删除列表中的重复项? 解决方案 var
..