Questions tagged «linq»

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

4
带out参数的Func <T>
我可以将带有out参数的方法作为Func传递吗? public IList&lt;Foo&gt; FindForBar(string bar, out int count) { } // somewhere else public IList&lt;T&gt; Find(Func&lt;string, int, List&lt;T&gt;&gt; listFunction) { } Func需要一个类型,因此out不能在那里编译,调用listFunction需要一个int,不允许out in。 有没有办法做到这一点?
167 c#  .net  linq  generics  func 

5
LINQ-左联接,分组依据和计数
假设我有以下SQL: SELECT p.ParentId, COUNT(c.ChildId) FROM ParentTable p LEFT OUTER JOIN ChildTable c ON p.ParentId = c.ChildParentId GROUP BY p.ParentId 如何将其转换为LINQ to SQL?我被困在COUNT(c.ChildId),生成的SQL似乎总是输出COUNT(*)。这是到目前为止我得到的: from p in context.ParentTable join c in context.ChildTable on p.ParentId equals c.ChildParentId into j1 from j2 in j1.DefaultIfEmpty() group j2 by p.ParentId into grouped select new { ParentId …
166 c#  .net  linq  linq-to-sql 

6
Lookup()和Dictionary(Of list())之间的区别
我正在努力寻找最有效的数据结构以及何时/何地使用哪种数据结构。 现在,可能是我只是对结构不够了解而已,但是它ILookup(of key, ...)与a Dictionary(of key, list(of ...))有何不同? 此外,ILookup在程序速度/内存/数据访问等方面,我想在哪里使用?在哪里使用效率更高?
165 c#  .net  vb.net  linq 

6
无法创建类型的常量值在此上下文中仅支持原始类型或枚举类型
我在下面的查询中遇到此错误 无法创建类型的常量值API.Models.PersonProtocol。在此上下文中仅支持原始类型或枚举类型 ppCombined下面是的IEnumerable对象PersonProtocolType,由2个PersonProtocol列表的concat构造。 为什么会失败?我们不能JOIN在SELECTa 内部使用LINQ 子句JOIN吗? var persons = db.Favorites .Where(x =&gt; x.userId == userId) .Join(db.Person, x =&gt; x.personId, y =&gt; y.personId, (x, y) =&gt; new PersonDTO { personId = y.personId, addressId = y.addressId, favoriteId = x.favoriteId, personProtocol = (ICollection&lt;PersonProtocol&gt;) ppCombined .Where(a =&gt; a.personId == x.personId) .Select( b =&gt; new …

11
使用linq将列表转换为字典,而不用担心重复
我有一个Person对象的列表。我想转换为词典,其中键是名和姓(连接),值是Person对象。 问题是我有一些重复的人,因此如果使用以下代码,它会爆炸: private Dictionary&lt;string, Person&gt; _people = new Dictionary&lt;string, Person&gt;(); _people = personList.ToDictionary( e =&gt; e.FirstandLastName, StringComparer.OrdinalIgnoreCase); 我知道这听起来很怪异,但现在我真的不在乎重复的名称。如果有多个名称,我只想取一个。无论如何,我可以在上面编写这段代码,使它只使用名称之一,而不会重复吗?
163 c#  linq  dictionary 

8
使用linq从两个对象列表创建一个列表
我有以下情况 class Person { string Name; int Value; int Change; } List&lt;Person&gt; list1; List&lt;Person&gt; list2; 我需要将2个列表合并到一个新列表List&lt;Person&gt; 中,以防合并记录具有相同的人名,即list2中人的值,更改将是list2的值-list1的值。如果没有重复,则更改为0
161 c#  linq 

4
LINQ分组依据为字典对象
我试图使用LINQ创建一个Dictionary&lt;string, List&lt;CustomObject&gt;&gt;从List&lt;CustomObject&gt;。我可以使用“ var”使它正常工作,但是我不想使用匿名类型。这是我所拥有的 var x = (from CustomObject o in ListOfCustomObjects group o by o.PropertyName into t select t.ToList()); 我也曾经尝试Cast&lt;&gt;()过从LINQ库使用它x,但是由于它是无效的强制转换,我遇到了编译问题。
161 linq  dictionary 

7
Find()与Where()。FirstOrDefault()
我经常看到人们Where.FirstOrDefault()用来搜索并获取第一个元素。为什么不只是使用Find()?对方有优势吗?我无法分辨。 namespace LinqFindVsWhere { class Program { static void Main(string[] args) { List&lt;string&gt; list = new List&lt;string&gt;(); list.AddRange(new string[] { "item1", "item2", "item3", "item4" }); string item2 = list.Find(x =&gt; x == "item2"); Console.WriteLine(item2 == null ? "not found" : "found"); string item3 = list.Where(x =&gt; x == "item3").FirstOrDefault(); Console.WriteLine(item3 …
161 c#  linq  linq-to-objects 

5
以下LINQ语句如何工作?
以下LINQ语句如何工作? 这是我的代码: var list = new List&lt;int&gt;{1,2,4,5,6}; var even = list.Where(m =&gt; m%2 == 0); list.Add(8); foreach (var i in even) { Console.WriteLine(i); } 输出: 2, 4, 6, 8 为什么不2, 4, 6呢?
160 c#  .net  linq 

6
Linq to Sql:多个左外部联接
我在弄清楚如何使用LINQ to SQL使用多个左外部联接时遇到麻烦。我了解如何使用一个左外部联接。我正在使用VB.NET。以下是我的SQL语法。 T-SQL SELECT o.OrderNumber, v.VendorName, s.StatusName FROM Orders o LEFT OUTER JOIN Vendors v ON v.Id = o.VendorId LEFT OUTER JOIN Status s ON s.Id = o.StatusId WHERE o.OrderNumber &gt;= 100000 AND o.OrderNumber &lt;= 200000

5
Lookup <TKey,TElement>有什么意义?
MSDN这样解释查找: A Lookup&lt;TKey, TElement&gt; 类似于Dictionary&lt;TKey, TValue&gt;。区别在于 Dictionary &lt;TKey,TValue&gt;将键映射到单个值,而 Lookup &lt;TKey,TElement&gt;将键映射到值的集合。 我认为这种解释没有特别的帮助。查找的用途是什么?
155 c#  .net  linq  lookup 

5
EF LINQ包含多个嵌套实体
好的,我具有具有以下层次结构的三级实体:课程-&gt;模块-&gt;本章 这是原始的EF LINQ语句: Course course = db.Courses .Include(i =&gt; i.Modules.Select(s =&gt; s.Chapters)) .Single(x =&gt; x.Id == id); 现在,我想包含另一个与课程关联的名为Lab的实体。 如何包括实验室实体? 我尝试了以下操作,但没有成功: Course course = db.Courses .Include(i =&gt; i.Modules.Select(s =&gt; s.Chapters) &amp;&amp; i.Lab) .Single(x =&gt; x.Id == id); 关于包括第二实体的任何想法? 任何建议或信息将不胜感激。谢谢!

22
如何检查IEnumerable是否为null或为空?
我喜欢string.IsNullOrEmpty方法。我很想拥有可以为IEnumerable提供相同功能的东西。有吗 也许一些收集助手类?我要问的原因是,if如果状态为,则语句中的代码看起来很混乱(mylist != null &amp;&amp; mylist.Any())。拥有它会更清洁Foo.IsAny(myList)。 这篇文章没有给出答案:IEnumerable是否为空?。

5
LINQ表达式中的String.IsNullOrWhiteSpace
我有以下代码: return this.ObjectContext.BranchCostDetails.Where( b =&gt; b.TarrifId == tariffId &amp;&amp; b.Diameter == diameter || (b.TarrifId==tariffId &amp;&amp; !string.IsNullOrWhiteSpace(b.Diameter)) || (!b.TarrifId.HasValue) &amp;&amp; b.Diameter==diameter); 当我尝试运行代码时出现此错误: LINQ to Entities无法识别方法'Boolean IsNullOrWhiteSpace(System.String)',并且该方法不能转换为商店表达式。” 我该如何解决这个问题并编写比这更好的代码?


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.