Questions tagged «linq»

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


22
LINQ的左外连接
如何在不使用join-on-equals-into子句的情况下在C#LINQ中对对象执行左外部联接?有什么办法可以使用where子句吗?正确的问题:因为内部联接很容易,我有这样的解决方案 List<JoinPair> innerFinal = (from l in lefts from r in rights where l.Key == r.Key select new JoinPair { LeftId = l.Id, RightId = r.Id}) 但是对于左外部联接,我需要一个解决方案。我的是这样的,但没有用 List< JoinPair> leftFinal = (from l in lefts from r in rights select new JoinPair { LeftId = l.Id, RightId = ((l.Key==r.Key) ? …
538 c#  linq  join 

10
使用LINQ来获取一个List <>中的项目,而不是另一个List <>中的项目
我假设有一个简单的LINQ查询可以做到这一点,但我不确定该如何做。 给出这段代码: class Program { static void Main(string[] args) { List&lt;Person&gt; peopleList1 = new List&lt;Person&gt;(); peopleList1.Add(new Person() { ID = 1 }); peopleList1.Add(new Person() { ID = 2 }); peopleList1.Add(new Person() { ID = 3 }); List&lt;Person&gt; peopleList2 = new List&lt;Person&gt;(); peopleList2.Add(new Person() { ID = 1 }); peopleList2.Add(new Person() …
525 c#  linq  .net-3.5 

16
在LINQ查询中调用ToList()或ToArray()更好吗?
我经常遇到我想在声明它的地方评估一个查询的情况。这通常是因为我需要对其进行多次迭代,并且计算起来很昂贵。例如: string raw = "..."; var lines = (from l in raw.Split('\n') let ll = l.Trim() where !string.IsNullOrEmpty(ll) select ll).ToList(); 这很好。但是,如果我不打算修改结果,那么我不妨致电ToArray()而不是ToList()。 但是我不知道是否ToArray()通过首次调用实现,ToList()因此与仅调用相比,内存效率更低ToList()。 我疯了吗?我应该打电话给我ToArray()吗-安全又有保障,因为不会为内存分配两次?
518 .net  linq  performance 

21
从Lambda表达式中检索属性名称
通过lambda表达式传递时,是否有更好的方法来获取属性名称?这是我目前拥有的。 例如。 GetSortingInfo&lt;User&gt;(u =&gt; u.UserId); 仅当属性为字符串时,才将其强制转换为memberexpression。因为并非所有属性都是字符串,所以我不得不使用object,但是它将为这些返回unaryexpression。 public static RouteValueDictionary GetInfo&lt;T&gt;(this HtmlHelper html, Expression&lt;Func&lt;T, object&gt;&gt; action) where T : class { var expression = GetMemberInfo(action); string name = expression.Member.Name; return GetInfo(html, name); } private static MemberExpression GetMemberInfo(Expression method) { LambdaExpression lambda = method as LambdaExpression; if (lambda == null) throw new …

15
LINQ:何时使用具有筛选条件的SingleOrDefault与FirstOrDefault()
考虑IEnumerable扩展方法SingleOrDefault()和FirstOrDefault() MSDN文件指出SingleOrDefault: 返回序列的唯一元素;如果序列为空,则返回默认值;否则,返回默认值。如果序列中有多个元素,则此方法将引发异常。 而FirstOrDefault从MSDN(推测当使用OrderBy()或 OrderByDescending()在所有或没有), 返回序列的第一个元素 考虑几个示例查询,何时使用这两种方法并不总是很清楚: var someCust = db.Customers .SingleOrDefault(c=&gt;c.ID == 5); //unlikely(?) to be more than one, but technically COULD BE var bobbyCust = db.Customers .FirstOrDefault(c=&gt;c.FirstName == "Bobby"); //clearly could be one or many, so use First? var latestCust = db.Customers .OrderByDescending(x=&gt; x.CreatedOn) .FirstOrDefault();//Single or First, or …
505 .net  linq  linq-to-sql 

16
使用LINQ更新集合中的所有对象
有没有办法使用LINQ执行以下操作? foreach (var c in collection) { c.PropertyToSet = value; } 为了澄清,我想遍历集合中的每个对象,然后更新每个对象的属性。 我的用例是,我在博客文章上有很多评论,我想遍历博客文章上的每个评论,并将博客文章上的日期时间设置为+10小时。我可以用SQL做到这一点,但我想将其保留在业务层中。
498 c#  .net  linq  foreach 

12
如何使用LINQ选择具有最小或最大属性值的对象
我有一个具有Nullable DateOfBirth属性的Person对象。有没有一种方法可以使用LINQ来查询Person对象列表中最早/最小的DateOfBirth值。 这是我开始的: var firstBornDate = People.Min(p =&gt; p.DateOfBirth.GetValueOrDefault(DateTime.MaxValue)); 空的DateOfBirth值设置为DateTime.MaxValue以便将它们排除在Min考虑之外(假设至少一个具有指定的DOB)。 但是对我来说,所有要做的就是将firstBornDate设置为DateTime值。我想要得到的是与此匹配的Person对象。我是否需要这样编写第二个查询: var firstBorn = People.Single(p=&gt; (p.DateOfBirth ?? DateTime.MaxValue) == firstBornDate); 还是有一种更精简的方法?
464 c#  .net  linq 

9
与LINQ和Lambda一起/在哪里
我遇到了用LINQ和Lambda编写的查询的麻烦。到目前为止,我的代码很多: int id = 1; var query = database.Posts.Join(database.Post_Metas, post =&gt; database.Posts.Where(x =&gt; x.ID == id), meta =&gt; database.Post_Metas.Where(x =&gt; x.Post_ID == id), (post, meta) =&gt; new { Post = post, Meta = meta }); 我是使用LINQ的新手,所以不确定此查询是否正确。
457 c#  linq  join  lambda 

4
LINQ Orderby降序查询
我相信这将是一个相对简单的过程。 我有一个LINQ查询,我想在最近创建的日期之前对其进行排序。 看到: var itemList = from t in ctn.Items where !t.Items &amp;&amp; t.DeliverySelection orderby t.Delivery.SubmissionDate descending select t; 我也尝试过: var itemList = (from t in ctn.Items where !t.Items &amp;&amp; t.DeliverySelection select t).OrderByDescending(); 但这给出了一个错误: 方法'OrderByDescending'的重载不接受0个参数 从我所阅读的内容中,我相当确定我做的第一种方法应该可以工作。我尝试将降序更改为升序,只是看它是否有任何作用,但保持不变。 如果有人可以看一下查询,看看我做错了什么,我将不胜感激。谢谢 :)
438 c#  linq  sql-order-by 


6
LINQ .Any VS .Exists-有什么区别?
在集合上使用LINQ,以下代码行之间有什么区别? if(!coll.Any(i =&gt; i.Value)) 和 if(!coll.Exists(i =&gt; i.Value)) 更新1 当我反汇编时.Exists,似乎没有代码。 更新2 有人知道为什么那里没有代码吗?
413 c#  linq  collections 

14
如何在Linq中执行SQL Like%?
我有一个试图转换为Linq的SQL过程: SELECT O.Id, O.Name as Organization FROM Organizations O JOIN OrganizationsHierarchy OH ON O.Id=OH.OrganizationsId where OH.Hierarchy like '%/12/%' 我最关心的行是: where OH.Hierarchy like '%/12/%' 我有一列存储例如/ 1/3/12 /之类的层次结构,因此我只使用%/ 12 /%进行搜索。 我的问题是,Linq或.NET与使用百分号等效吗?

29
使用LINQ将列表拆分为子列表
有什么方法可以将item用作每个拆分的定界符,将a List&lt;SomeObject&gt;分为几个单独的列表SomeObject? 让我举例说明: 我有一个List&lt;SomeObject&gt;和我需要一个List&lt;List&lt;SomeObject&gt;&gt;或List&lt;SomeObject&gt;[],以便每个结果列表将包含一组3个原始列表(依次)。 例如。: 原始清单: [a, g, e, w, p, s, q, f, x, y, i, m, c] 结果列表: [a, g, e], [w, p, s], [q, f, x], [y, i, m], [c] 我还需要将结果列表的大小作为此函数的参数。
377 c#  linq  data-structures 


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.