Tag: linq

无法使用SelectListitem获取不同的值

我正在尝试为下拉列表获取不同的值,但在使用以下语法时,它会将所有行返回给我。 有人可以告诉我如何使用正确的语法获得不同的值集? IEnumerable ldidList = _db.TrafficHits.Select(c => new SelectListItem { Value = c.Id.ToString(), Text = c.ldid }).Distinct();

将两个double 数组合并为double

我经常有两个数组,我需要将它们组合成一个矩阵(相同的长度和类型)。 我想知道是否有一种更优雅的linq方式: var result = new double[dt.Count, 2]; for (int i = 0; i < dt.Count; i++) { result[i, 0] = dts[i]; result[i, 1] = dt[i]; } 我试过了 var result = dts.zip(dt, (a,b) => new{a,b}) 和: var result = dts.Concat(dt).ToArray() 但是我想做的也不行……

动态构建表达式树

我正在关注这个优秀的例子: 将Linq转换为Sql表达式到表达式树 在我的情况下,我正在尝试构建一个表达式树,其中要过滤的类型仅在运行时已知,并表示为字符串。 在上面的示例中,类型Region已知并直接键入: ParameterExpression pe = Expression.Parameter(typeof(Region), “region”); 在我的应用程序中,我已经能够将其重写为: ParameterExpression pe = Expression.Parameter(Type.GetType(“mystring”), “listData”); 我的绊脚石就是这个例子: MethodCallExpression whereCallExpression = Expression.Call( typeof(Queryable), “Where”, new Type[] { query.ElementType }, query.Expression, Expression.Lambda<Func>(e3, new ParameterExpression[] { pe })); var results = query.Provider.CreateQuery(whereCallExpression); 在这两行中, Region是直接键入的。 有没有办法动态使用字符串“Region”来实现同样的事情?

确定LINQ Enumerable是否包含基于条件的对象?

我有一个IEnumerable 我想知道这个列表是否有任何元素Project.ID == someID 。 有没有办法做到这一点?

是否有可能用Linq替换这个foreach循环?

我有一个foreach循环,我想用Linq查询替换,但我无法弄清楚如何编写查询。 请参阅下面的示例和TIA。 using System.Collections.Generic; using System.Linq; namespace ConsoleApplication { class ExampleProgram { static void Main( string[] args ) { Device device = new Device(); // The goal is to populate this list. var list1 = new List(); // I would like to replace this loop with a Linq query foreach( MemoryBank memoryBank in device.MemoryBanks ) […]

如何使用LINQ连接多个表

我正试图用LINQ连接三个表。 我的SQL工作如下: Select j.Id, u.FirstName , u.LastName, u.Role From Job j left join JobTranslator as jt on j.Id = jt.JobId left join JobRevisor as jr on j.Id = jr.JobId left join [User] as u on jt.UserId = u.Id OR jr.UserId = u.Id Where u.Id = someID; 我可以使用下面的两个连接来使用它: IQueryable jobs = from j in _db.Jobs join […]

是否可以按groupby中不存在的列进行排序?

例如,我有这样的查询: var data= from c in customers join o in orders on c.id=o.id group new { c, o } by new { o.customerid, c.FirstName, c.LastName, c.City } into customergroups orderby customergroup.select(x=>xoquantity) 但是,它给了我空的结果集.. 请建议..

LINQ有条件地添加加入

我有一个LINQ查询,我试图从2个表返回数据,但我加入的表是有条件的。 这就是我想做的事情: if (teamType == “A”){ var query = from foo in context.People join foo2 in context.PeopleExtendedInfoA select foo; } else { var query = from foo in context.People join foo2 in context.PeopleExtendedInfoB select foo; } 然后我会进一步过滤查询。 我显然无法以这种方式设置它,因为我无法访问if块之外的“查询”,但它显示了我正在尝试做的事情。 这是我稍后尝试使用查询执行的示例: if (state != null) { query = query.Where(p => p.State == state); } if (query != […]

linq in plain english

有人可以用简单的英语解释这个语法: 这是OrderBy运算符的签名: OrderedSequence OrderBy( this IEnumerable source, Func keySelector ) 这表明您需要为OrderBy提供的委托类型是Func 。 我正在寻找一个接收列表和字符串作为参数(列名)的函数,我坚持使用OrderBy扩展方法的语法。 Func是什么意思? 我在哪里放置字符串参数进行排序? 谢谢。

成员“在LINQ to Entities中不受支持”

所以我是C#,LINQ和MVC的新手。 我试图得到一个年龄列表,但它说 LINQ to Entities不支持指定的类型成员’Age’。 仅支持初始化程序,实体成员和实体导航属性。 对于之前的教程,他们使用这个完全相同的逻辑,除了他们检查字符串,而不是int(年龄)。 为什么这会让我感到健康,我该如何解决? public ActionResult SearchIndex(string ageValue, string searchString) { if (!string.IsNullOrEmpty(ageValue)) { var AgeList = new List(); var AgeListQry = from d in db.Actors orderby d.Age select d.Age.ToString(); AgeList.AddRange(AgeListQry.Distinct()); } // other stuff } 我想知道发生了什么,以便将来可以避免这种情况! 实体模型代码 public class Actor { public int ID { get; set; } public string […]