Questions tagged «linq»

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

4
Linq-SelectMany混乱
据我从SelectMany的文档中了解到的,可以用它来产生一个(平整的)一对多关系的序列。 我有以下课程 public class Customer { public int Id { get; set; } public string Name { get; set; } } class Order { public int Id { get; set; } public int CustomerId { get; set; } public string Description { get; set; } } 然后,我尝试使用查询表达式语法使用它们,如下所示 var customers = …

4
如何从列表中删除空字符串,然后从列表中删除重复的值
可以说我有一个表中的一些列值的列表,如何删除空字符串和重复值。请参见以下代码: List<string> dtList = dtReportsList.AsEnumerable().Select(dr => dr.Field<string>("column1")).ToList(); 这是我刚才编写的代码,但是Amiram的代码更优雅,因此我将选择答案,这是我的做法: DataTable dtReportsList = someclass.GetReportsList(); if (dtReportsList.Rows.Count > 0) { List<string> dtList = dtReportsList.AsEnumerable().Select(dr => dr.Field<string>("column1")).ToList(); dtList.RemoveAll(x=>x == ""); dtList = dtList.Distinct().ToList(); rcboModule.DataSource = dtList; rcboModule.DataBind(); rcboModule.Items.Insert(0, new RadComboBoxItem("All", "All")); }
81 c#  linq 

4
Linq-to-SQL ToDictionary()
如何使用Linq将SQL(2008)中的两列正确转换为Dictionary(用于缓存)? 我目前正在遍历IQueryable b / c,但无法使用ToDictionary方法。有任何想法吗?这有效: var query = from p in db.Table select p; Dictionary<string, string> dic = new Dictionary<string, string>(); foreach (var p in query) { dic.Add(sub.Key, sub.Value); } 我真正想做的是这样的事情,它似乎不起作用: var dic = (from p in db.Table select new {p.Key, p.Value }) .ToDictionary<string, string>(p => p.Key); 但我收到此错误:无法从“ System.Linq.IQueryable”转换为“ System.Collections.Generic.IEnumerable”
81 c#  linq  linq-to-sql 


17
搜索字符串集合的最快方法
问题: 我有一个大约120,000个用户(字符串)的文本文件,我想将其存储在集合中,然后在该集合上执行搜索。 每当用户更改a的文本时,都会出现搜索方法,TextBox并且结果应为中包含文本的字符串TextBox。 我不必更改列表,只需拉出结果并将其放在即可ListBox。 到目前为止,我已经尝试过: 我尝试了两种不同的集合/容器,它们是从外部文本文件中转储字符串条目(当然是一次): List<string> allUsers; HashSet<string> allUsers; 使用以下LINQ查询: allUsers.Where(item => item.Contains(textBox_search.Text)).ToList(); 我的搜索事件(当用户更改搜索文本时触发): private void textBox_search_TextChanged(object sender, EventArgs e) { if (textBox_search.Text.Length > 2) { listBox_choices.DataSource = allUsers.Where(item => item.Contains(textBox_search.Text)).ToList(); } else { listBox_choices.DataSource = null; } } 结果: 两者都给了我较差的响应时间(每次按键之间大约1-3秒)。 题: 您认为我的瓶颈在哪里?我使用过的收藏?搜索方法?都? 如何获得更好的性能和更流畅的功能?

11
使用LINQ将项目移到列表顶部
有没有办法使用LINQ将id = 10的项作为列表中的第一项移动? 项目A-id = 5 项目B-id = 10 项目C-id = 12 项目D-id = 1 在这种情况下,如何优雅地将商品C移到List<T>收藏夹的顶部? 这是我目前拥有的最好的: var allCountries = repository.GetCountries(); var topitem = allCountries.Single(x => x.id == 592); var finalList = new List<Country>(); finalList.Add(topitem); finalList = finalList.Concat(allCountries.Where(x=> x.id != 592)).ToList();
80 c#  linq  sorting 

7
LINQ中的标准偏差
LINQ是否对聚合SQL函数STDDEV() (标准偏差)建模? 如果没有,最简单/最佳实践的计算方法是什么? 例: SELECT test_id, AVERAGE(result) avg, STDDEV(result) std FROM tests GROUP BY test_id

4
Any <T>的相反方法是什么
如何使用Linq检查集合中是否不包含对象。IE的反义词Any&lt;T&gt;。 我可以使用来反转结果,!但是出于可读性考虑,我想知道是否还有更好的方法吗?我应该自己添加扩展名吗?
80 c#  linq 

7
具有LINQ扩展方法的多个WHERE子句
我有一个看起来像下面的LINQ查询: DateTime today = DateTime.UtcNow; var results = from order in context.Orders where ((order.OrderDate &lt;= today) &amp;&amp; (today &lt;= order.OrderDate)) select order; 我正在尝试学习/理解LINQ。在某些情况下,我需要添加两个附加的WHERE子句。为了做到这一点,我正在使用: if (useAdditionalClauses) { results = results.Where(o =&gt; o.OrderStatus == OrderStatus.Open) // Now I'm stuck. } 如您所见,我知道如何添加其他WHERE子句。但是如何添加多个?例如,我想添加 WHERE o.OrderStatus == OrderStatus.Open AND o.CustomerID == customerID 到我以前的查询。如何使用扩展方法做到这一点? 谢谢!
79 c#  linq 

8
C#Linq其中两个日期之间的日期
我正在尝试获取linq语句以获取两个日期之间的所有记录,但我不确定要使其正常工作需要进行哪些更改: (a.Start &gt;= startDate &amp;&amp; endDate) var appointmentNoShow = from a in appointments from p in properties from c in clients where a.Id == p.OID &amp;&amp; (a.Start.Date &gt;= startDate.Date &amp;&amp; endDate)
79 c#  linq 

4
实体框架-“无法创建类型为'结算类型'的常量值……”错误
为什么会出现错误: 无法创建类型为“结算类型”的常量值。在此上下文中仅支持原始类型(例如Int32,String和Guid)。 当我尝试枚举以下Linq查询时? IEnumerable&lt;string&gt; searchList = GetSearchList(); using (HREntities entities = new HREntities()) { var myList = from person in entities.vSearchPeople where upperSearchList.All( (person.FirstName + person.LastName) .Contains).ToList(); } 更新:如果我尝试以下方法只是为了找出问题所在,则会收到相同的错误: where upperSearchList.All(arg =&gt; arg == arg) 看来问题出在All方法上,对不对?有什么建议?



1
在未先将其转换为委托或表达式树类型的情况下,无法将lambda表达式用作动态调度的操作的参数
我正在使用.NET4.5和VS2013,我有dynamic从数据库获取结果的查询。 dynamic topAgents = this._dataContext.Sql( "select t.create_user_id as \"User\", sum(t.netamount) as \"Amount\" from transactiondetail t where t.update_date &gt; sysdate -7 group by t.create_user_id") .QueryMany&lt;dynamic&gt;(); 以下语句由于编译错误Cannot use a lambda expression as an argument to a dynamically dispatched operation without first casting it to a delegate or expression tree type 而失败,甚至没有允许我运行它 topAgents.ToList().Select(agent …
78 c#  linq  lambda  .net-4.5 

10
在C#中获得字典最高价值的键的好方法
我正在尝试获取中的最大值的键Dictionary&lt;string, double&gt; results。 这是我到目前为止所拥有的: double max = results.Max(kvp =&gt; kvp.Value); return results.Where(kvp =&gt; kvp.Value == max).Select(kvp =&gt; kvp.Key).First(); 但是,由于这似乎效率不高,所以我想知道是否有更好的方法可以做到这一点。
77 c#  linq  dictionary  max 

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.