Tag: linq

如何编写一个导致字典的LINQ查询?

public class Person { public string NickName{ get; set; } public string Name{ get; set; } } var pl = new List<Person>; var q = from p in pl where p.Name.First() == 'A' orderby p.NickName select new KeyValuePair<String, String>(p.NickName, p.Name); var d1 = q.ToList(); // Gives List<KeyValuePair<string, string>> var d2 = q.ToDictionary(); // Does not […]

最酷的C#LINQ / Lambdas技巧你曾经拉?

看到一个隐藏的function在C#的post,但不是很多人写了linq / lambdas的例子,所以…我不知道… C#LINQ和/或Lambdas /匿名代理你曾经看过/写过的最酷的(如最优雅的)用法是什么? 如果它已经投入生产也有奖励!

entity framework程序集中的重复types名称(6.1.0)

我不知道发生了什么,但是在做查询时,我不断收到以下exception。 “在程序集中复制types名称”。 我一直无法在网上find解决scheme。 我已经通过从解决scheme中的所有项目中移除entity framework并使用块重新安装来解决此问题。 然后突然间,exception又回来了。 我一遍又一遍地validation了我的表模式,发现没有错。 这是导致exception的查询。 var BaseQuery = from Users in db.Users join UserInstalls in db.UserTenantInstalls on Users.ID equals UserInstalls.UserID join Installs in db.TenantInstalls on UserInstalls.TenantInstallID equals Installs.ID where Users.Username == Username && Users.Password == Password && Installs.Name == Install select Users; var Query = BaseQuery.Include("UserTenantInstalls.TenantInstall"); return Query.FirstOrDefault(); 正如我前面提到的,同样的查询在以前工作。 数据没有改变,代码没有改变。

如何使用dynamic集合的LINQ

有没有办法将dynamic对象转换为IEnumerabletypes来过滤具有属性的集合。 dynamic data = JsonConvert.DeserializeObject(response.Content); 我需要访问这样的东西 var a = data.Where(p => p.verified == true) 有任何想法吗?

Linq查询分组依据并select第一项

我有一个string数组有点像这样: // icon, category, tool String[,] subButtonData = new String[,] { {"graphics/gui/brushsizeplus_icon", "Draw", "DrawBrushPlus"}, {"graphics/gui/brushsizeminus_icon", "Draw", "DrawBrushMinus"}, {"graphics/gui/freedraw_icon", "Draw", "DrawFree"}, {"graphics/gui/linedraw_icon", "Draw", "DrawLine"}, {"graphics/gui/rectangledraw_icon", "Draw", "DrawRectangle"}, {"graphics/gui/ellipsedraw_icon", "Draw", "DrawEllipse"}, {"graphics/gui/brushsizeplus_icon", "Brusher", "BrusherBrushPlus"}, {"graphics/gui/brushsizeminus_icon", "Brusher", "BrusherBrushMinus"}, {"graphics/gui/brushsizeplus_icon", "Text", "TextBrushPlus"}, {"graphics/gui/brushsizeminus_icon", "Text", "TextBrushMinus"}, }; 然后我用名为mainButtonsbuttontypes填充List<Button> 这是我如何查询分类的Category : var categories = from b in mainButtons group b by […]

为LINQ的Distinct()使用相等比较器的委托

我有一个LINQ Distinct()语句,使用我自己的自定义比较器,如下所示: class MyComparer<T> : IEqualityComparer<T> where T : MyType { public bool Equals(T x, T y) { return x.Id.Equals(y.Id); } public int GetHashCode(T obj) { return obj.Id.GetHashCode(); } } … var distincts = bundle.GetAllThings.Distinct(new MyComparer<MySubType>()); 这一切都很好,并按我的意愿工作。 出于好奇,我需要定义自己的比较器,还是可以用委托来replace它? 我以为我应该可以做这样的事情: var distincts = bundle.GetAllThings.Distinct((a,b) => a.Id == b.Id); 但是这不能编译。 有一个巧妙的把戏吗?

更新你的EDMX,以反映你的数据库(.net LINQ实体)

所以我有我的edmx。 然后我改变我的数据库一点点,改变一列从一个非空,以允许NULL。 我进入我的edmx,右键单击并select“从数据库更新模型” 现在我进入我的程序,它并没有实际更新…我不能把一个空列。 我需要做什么来正确地更新edmx? 谢谢。

sortingList <int>

使用C#什么是数字sorting列表的最佳方式? 我的清单有项目5,7,3,我想他们分类3,5,7。 我知道一些更长的路,但我会想像LINQ有一个更快的方法? 对不起,这是一天的结束,我的思想是在哪里工作,没有看到它改变了第一次:(

了解LINQ to SQL中的.AsEnumerable()

鉴于以下LINQ to SQL查询: var test = from i in Imports where i.IsActive select i; 解释的SQL语句是: SELECT [t0].[id] AS [Id] …. FROM [Imports] AS [t0] WHERE [t0].[isActive] = 1 假设我想在select中执行一些无法转换为SQL的操作。 我的理解是,传统的方法来做到这一点是做AsEnumerable()从而把它转换成一个可行的对象。 鉴于这个更新的代码: var test = from i in Imports.AsEnumerable() where i.IsActive select new { // Make some method call }; 和更新的SQL: SELECT [t0].[id] AS [Id] … […]

First()和Find()之间的区别

所以我知道Find()只是一个List<T>方法,而First()是任何IEnumerable<T>的扩展。 我也知道如果没有parameter passing, First()会返回第一个元素,而Find()会抛出一个exception。 最后,我知道如果找不到元素, First()将抛出exception,而Find()将返回该types的默认值。 我希望能澄清我实际上在问什么。 这是一个计算机科学问题,在计算层面处理这些方法。 我已经明白, IEnumerable<T>扩展并不总是如人们所期望的那样运行。 所以这里是Q,我的意思是从“接近金属”的angular度来看: Find()和First()之间有什么区别? 这里有一些代码提供了基本的假设来操作这个问题。 var l = new List<int> { 1, 2, 3, 4, 5 }; var x = l.First(i => i == 3); var y = l.Find(i => i == 3); First()和Find()如何在上面的代码中发现它们的值之间有什么实际的计算差异? 注意:现在让我们忽略像AsParallel()和AsQueryable()这样的东西。