Questions tagged «linq»

语言集成查询(LINQ)是Microsoft .NET Framework组件,它向.NET语言添加了本机数据查询功能。请考虑在适当的时候使用更详细的标签,例如[linq-to-sql],[linq-to-entities] / [entity-framework]或[plinq]

3
LINQ to SQL Where子句可选条件
我正在使用LINQ to SQL查询,并且遇到了一个问题,其中我有4个可选字段来过滤数据结果。可选地,我的意思是可以选择是否输入值。具体来说,一些文本框可能具有值或具有空字符串,而一些下拉列表可能具有选择值或可能没有值... 例如: using (TagsModelDataContext db = new TagsModelDataContext()) { var query = from tags in db.TagsHeaders where tags.CST.Equals(this.SelectedCust.CustCode.ToUpper()) && Utility.GetDate(DateTime.Parse(this.txtOrderDateFrom.Text)) <= tags.ORDDTE && Utility.GetDate(DateTime.Parse(this.txtOrderDateTo.Text)) >= tags.ORDDTE select tags; this.Results = query.ToADOTable(rec => new object[] { query }); } 现在,我需要添加以下字段/过滤器,但前提是它们由用户提供。 产品编号-来自另一个可以连接到TagHeader的表。 采购订单编号-TagsHeaders表中的一个字段。 订单号-与PO#类似,只是不同的列。 产品状态-如果用户是从下拉菜单中选择的,则需要在此处应用所选的值。 我已经拥有的查询效果很好,但是要完成该功能,需要能够在where子句中添加这4个其他项,只是不知道如何!
72 c#  asp.net  linq  linq-to-sql 

11
如何从列表中快速删除项目
我正在寻找一种快速从C#中删除项目的方法List<T>。该文档指出,List.Remove()和List.RemoveAt()操作都是O(n) 列表删除 List.RemoveAt 这严重影响了我的应用程序。 我写了几种不同的删除方法,并List<String>用500,000个项目对它们全部进行了测试。测试案例如下所示。 总览 我编写了一种方法,该方法将生成一个字符串列表,其中仅包含每个数字(“ 1”,“ 2”,“ 3”,...)的字符串表示形式。然后,我尝试尝试remove列表中的第5个项目。这是用于生成列表的方法: private List<String> GetList(int size) { List<String> myList = new List<String>(); for (int i = 0; i < size; i++) myList.Add(i.ToString()); return myList; } 测试1:RemoveAt() 这是我用来测试RemoveAt()方法的测试。 private void RemoveTest1(ref List<String> list) { for (int i = 0; i < list.Count; i++) …
72 c#  linq  list  collections 

1
集合中项目的总和
使用LINQ to SQL,我有一个Order类,其中包含OrderDetails的集合。订单明细具有一个名为LineTotal的属性,该属性获取Qnty x ItemPrice。 我知道如何对数据库执行新的LINQ查询以查找订单总额,但是由于我已经从数据库中获得了OrderDetails的集合,是否有一种简单的方法可以直接从集合中返回LineTotal的总和? 我想将订单总计添加为Order类的属性。我想我可以遍历集合并为每个Order.OrderDetail计算一个总和,但是我猜想有更好的方法。
72 linq  sum 

5
Linq独特-计数
我正在寻找对示例对象列表执行查询 Date Username 01/01/2011 james 01/01/2011 jamie 01/01/2011 alex 01/01/2011 james 02/01/2011 matt 02/01/2011 jamie 02/01/2011 alex 02/01/2011 james 02/01/2011 james 02/01/2011 lucy 02/01/2011 alex 03/01/2011 james 03/01/2011 bob 03/01/2011 bob 03/01/2011 james 03/01/2011 james 04/01/2011 alex 04/01/2011 alex 04/01/2011 alex 我想使用linq查询具有唯一用户登录次数的日期列表。 例如: 01/01/2011 - 3 02/01/2011 - 5 03/01/2011 …
72 c#  linq 

3
LINQ Group By并选择收藏
我有这个结构 Customer - has many Orders - has many OrderItems 我想生成一个CustomerItems给定的子集的通过LINQ的列表OrderItems: List of new { Customer, List<OrderItem> Items } 这是客户从项目子集中订购的所有项目的分组 我如何使用LINQ追溯订单和按客户分组以生成此对象? 到目前为止,我在 items .GroupBy(i => i, i => i.Order.Customer, (i, customer) => new {customer, i}) 但这显然不是清单。我猜我在那里需要一个SelectMany,但是可以使用一些指针。
72 c#  linq  group-by 

30
您最喜欢的不是内置的LINQ to Objects运算符是什么?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 去年关闭。 改善这个问题 使用扩展方法,我们可以编写方便的LINQ运算符来解决通用问题。 我想听听System.Linq命名空间中缺少哪些方法或重载以及如何实现它们。 最好使用可能使用现有方法的简洁明了的实现。


1
我是否需要考虑处置我使用的任何IEnumerable <T>?
它最近向我指出,各种LINQ的扩展方法(如Where,Select等)返回IEnumerable&lt;T&gt;,恰巧也有IDisposable。以下评估为True new int[2] {0,1}.Select(x =&gt; x*2) is IDisposable 我是否需要处理Where表达式的结果? 每当我调用返回的方法时,完成操作后IEnumerable&lt;T&gt;,我是否(潜在地)承担对处置的责任?
70 c#  linq  ienumerable  dispose 

9
访问成员表达式的值
如果我有产品。 var p = new Product { Price = 30 }; 我有以下linq查询。 var q = repo.Products().Where(x=&gt;x.Price == p.Price).ToList() 在一个IQueryable提供程序中,我得到了一个包含常量表达式的p.Price的MemberExpression,但是似乎无法从中获得值“ 30”。 更新 我已经尝试过了,但是似乎没有用。 var memberExpression = (MemberExpression)GetRootConstantExpression(m); var fi = (PropertyInfo)memberExpression.Member; var val = fi.GetValue(((ConstantExpression)memberExpression.Expression).Value, null); 干杯。

2
F#List.map是否等效于C#?
C#中有与F#的List.map函数等效的功能吗?即对列表中的每个元素应用一个函数,并返回包含结果的新列表。 就像是: public static IEnumerable&lt;TResult&gt; Map&lt;TSource, TResult&gt;(this IEnumerable&lt;TSource&gt; source, Func&lt;TSource, TResult&gt; funky) { foreach (TSource element in source) yield return funky.Invoke(element); } 是否已经有内置方式,还是应该只编写自定义扩展名?
70 c#  .net  linq  f# 

5
LINQ性能常见问题解答
我试图与LINQ保持联系。最让我困扰的是,即使我对语法有了更好的了解,我也不想在表现力方面无意中牺牲性能。 它们是否是用于“有效LINQ”的良好的集中式信息存储库或书籍?如果失败,您个人最喜欢的高性能LINQ技术是什么? 我主要关心LINQ to Objects,但是当然也欢迎有关LINQ to SQL和LINQ to XML的所有建议。谢谢。
70 c#  .net  linq  performance 

14
Linq查询具有可为空的总和
from i in Db.Items select new VotedItem { ItemId = i.ItemId, Points = (from v in Db.Votes where b.ItemId == v.ItemId select v.Points).Sum() } 我得到了这个查询,但是,如果没有发现异常的选票,它将失败: The null value cannot be assigned to a member with type System.Int32 which is a non-nullable value type. 我以为它是因为sum返回一个int而不是可为null的int,从而给sum一个int?由于输入仅给出相同的错误,可能导致求和仅适用于int。 有什么好的解决方法吗?
70 c#  linq  linq-to-sql  sum  nullable 

3
查询结果不能被多次枚举
我正在使用实体框架(ef),并收到以下错误: “查询结果不能多​​次枚举。” 我有一个包含ef数据上下文的存储库类。然后,我有一个控制器类(不要与MVC控制器混淆),其中包含存储库的实例。到目前为止RadComboBoxItemData一切顺利...我在控制器上有一个搜索方法,该方法应该返回的数组,该数组用于填充Telerik RadComboBox控件。 public RadComboBoxItemData[] Search(int id, string searchText) { var query = context.Search(id, searchText); List&lt;RadComboBoxItemData&gt; result = new List&lt;RadComboBoxItemData&gt;(); foreach (var item in query) { RadComboBoxItemData itemData = new RadComboBoxItemData(); itemData.Text = ""; // assign some text here..; itemData.Value = ""; /*assign some value here..*/ result.Add(itemData); } return …


4
将SQL转换为Linq左联接,并使用null
如何正确将此SQL转换为linq select t1.ProgramID from Program t1 LEFT JOIN ProgramLocation t2 ON t1.ProgramID = t2.ProgramID where t2.ProgramID IS NULL 我尝试了一下但是没有用 var progy = ( from u in db.ProgramLocations join b in db.Programs on u.ProgramID equals b.ProgramID into yG from y1 in yG.DefaultIfEmpty() where u.ProgramID == null where u.ProgramID == null select …
69 c#  .net  sql  linq 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.