Tag: linq

Enum上的IEnumerable扩展方法

我有一个枚举(下面),我希望能够使用LINQ扩展方法。 enum Suit{ Hearts = 0, Diamonds = 1, Clubs = 2, Spades = 3 } Enum.GetValues(…)是返回类型System.Array,但我似乎无法访问ToList()扩展或其他任何类型。 我只是想写点像…… foreach(Suit s in Enum.GetValues(typeof(Suit)).Select(x=>x).Where(x=> x != param)){} 有什么我想念的,或者有人可以向我解释为什么这是不可能的? 谢谢。

lambda表达式使用select和where子句连接多个表

我有三个表多对多关系我已加入三个表并选择我想要的值但现在我需要从查询结果中选择一行通过指定id这是我的三个表 这是使用LINQ lambda表达式的查询: DataBaseContext db = new DataBaseContext(); public ActionResult Index() { var UserInRole = db.UserProfiles. Join(db.UsersInRoles, u => u.UserId, uir => uir.UserId, (u, uir) => new { u, uir }). Join(db.Roles, r => r.uir.RoleId, ro => ro.RoleId, (r, ro) => new { r, ro }) .Select(m => new AddUserToRole { UserName = mruUserName, RoleName […]

查找集合中的下一条记录:LINQ

我有一个对象列表,都有一个id属性 例如 1,10,25,30,4 我有一个currentId,我需要在列表中找到下一个Id 因此,例如当前Id设置为25,我需要返回id为30的对象。之后的那个将是4。 我如何在LINQ中优雅地完成这项工作? 编辑 该列表按“sort”属性排序。 因此,您不能只按ID排序,因为这会弄乱订单。

c#LINQ:如何检索单个结果

linq的新手, 什么是使用linq检索单个结果的最简单方法? 例如,我的查询 var query = from c in db.productInfo where c.flavor == “Classic Coke” && c.container == “Can” select c.co2Target; 它应该只返回一个具有double值的字段。 我怎么把它拉出查询? 在过去,我使用过ExecuteScalar。 我如何用linq做到这一点? 我想保留其数据类型 更新: 这就是我现在的位置。 问题是我在这里运行的测试查询返回4而不是3.75 var query = (from a in db.LUT_ProductInfos where a.flavor == “Classic Coke” && a.Container == “Can” select new { a.co2High }).Single(); double MyVar = query.co2High.Value;

无法将类型’.List ‘隐式转换为’.List ‘

在以下代码中返回一个列表: public List GeAllCust() { var results = db.Customers .Select(x => new { x.CustName, x.CustEmail, x.CustAddress, x.CustContactNo }) .ToList() return results; } 我收到错误报告C#无法转换列表: 错误:无法将类型System.Collections.Generic.List隐式转换为System.Collections.Generic.List 这是为什么? 这是一个屏幕截图,显示了Visual Studio在错误的工具提示中提供的一些其他信息: 返回一些列而不是整个表是正确的方法….? public object GeAllCust() { var results = db.Customers.Select(x => new { x.CustName, x.CustEmail, x.CustAddress, x.CustContactNo }).ToList(); return results; }

如何在C#中将IEnumerable 转换为List ?

我使用LINQ查询generics字典,然后使用结果作为我的ListView(WebForms)的数据源。 简化代码: Dictionary dict = GetAllRecords(); myListView.DataSource = dict.Values.Where(rec => rec.Name == “foo”); myListView.DataBind(); 我认为这会工作,但实际上它会抛出System.InvalidOperationException : ID为’myListView’的ListView必须具有实现ICollection的数据源,或者如果AllowPaging为true,则可以执行数据源分页。 为了使它工作,我不得不采取以下措施: Dictionary dict = GetAllRecords(); List searchResults = new List(); var matches = dict.Values.Where(rec => rec.Name == “foo”); foreach (Record rec in matches) searchResults.Add(rec); myListView.DataSource = searchResults; myListView.DataBind(); 在第一个例子中是否有一个小问题让它工作? (不知道该使用什么作为这个问题标题,随意编辑更合适的东西)

如何在不同(但兼容)的模型之间转换lambda表达式?

(基于电子邮件对话,现在记录用于信息共享)我有两个模型用于不同的层: public class TestDTO { public int CustomerID { get; set; } } //… public class Test { public int CustomerID { get; set; } } 和我的DTO层的lambda: Expression<Func> fc1 = (TestDTO c1) => c1.CustomerID = 10; 如何将lambda(在一般情况下)转换为讨论其他模型: Expression<Func> fc2 = {insert magic here, based on fc1} (显然,我们是在相同的测试条件之后,但是使用Test类型) ?

如何在不迭代的情况下将Linq结果转换为DTO类对象

我正在构建一个Web API项目,该项目将提供给第三方并由我自己的Web应用程序使用。 Web API方法将返回复杂类型/对象的JSON表示。 这些是我可以提供给第三方的预定义类,因此他们了解数据的结构,并可以反序列化JSON。 我会将这些类称为DTO类,直到有人纠正我为止。 我有以下自动生成的实体模型(来自数据库),这是用户类无论如何与扫描表的关系(为了这个问题可以忽略关系)… public partial class User { public User() { this.Scans = new HashSet(); } public int Id { get; set; } public string Username { get; set; } public string Password { get; set; } public bool Active { get; set; } public virtual ICollection Scans { get; set; […]

如何获取XDocument对象中的属性

我有这个xml 我希望我的代码能够做到这样的事情 if (xdoc.getAttr(“first”)==”true”) Console.Write(“first is true”); 如何使用LINQ XDocument执行此操作? 到目前为止我所拥有的是用该xml字符串加载的XDocument对象。

过滤Entity Framework查询中的“包含”表

这适用于.NET 3.5的Entity Framework: 我需要查询一个表并包含一对多关系的“多”表的集合。 我试图过滤该集合作为查询的一部分 – 我对Entity Framework很新,而且我很难搞清楚它。 简化示例:作者具有书籍,而书籍具有IsFiction列。 我想要一个过滤的作者列表,以及所有小说书籍。 没有filter,很容易: var q = from a in db.Authors.Include(“Books”) where a.BirthYear > 1900 select a; 事后我可以过滤,例如: var fictionBooks = a.Books.Where(b => b.IsFiction); 但问题是原始查询已经运行,并包含那些结果,这是不必要的数据库处理。 我可以单独查询,例如: var q = from a in db.Authors where a.BirthYear > 1900 select a; foreach (var a in q) { var books = […]