Tag: linq

LINQ查询通过某些条件将有序列表拆分为连续点的子列表

寻找帮助在某些对象上编写LINQ查询。 我觉得如果我的LINQ技能更加忍者,我可以通过一些聪明的GroupBy / SelectMany(或其他东西?!)来做到这一点。 一般来说,问题是:给定一个按某种顺序排列的对象列表,其中每个对象都有一个Flag,如何将列表拆分为子列表,其中每个子列表都是设置标志的所有连续点? 这样做的必要方法就像下面的伪代码: foreach object obj if(obj.FlagSet) add it to my currentsublist else skip to the next obj where FlagSet and start a new sublist 因此,给出以下输入: {1,Flag},{2,Flag},{3,NoFlag},{4,Flag},{5,NoFlag},{6,Flag} …… 我想要以下输出: 清单1:{1,2}清单2:{4}清单3:{6} 我想通过LINQ在function上做到这一点。 有任何想法吗? (我先看了一下,但是我能看到的所有问题似乎都想要简单地将一个列表分组或分成相同的大小,这对我没有帮助。)

将数据表拆分为多个固定大小的表

我有一个有1123条记录的数据表。 我想将此表拆分为5个固定大小的单独数据表。 每张表的大小限制为225。 因此产生的数据表的大小将是: DT1 : 225 rows DT2 : 225 rows DT3 : 225 rows DT4 : 225 rows DT5 : 223 rows (remaining rows) 我能够在这里找到如何使用LINQ基于列值拆分数据表。 我还找到了一种将数据表拆分为多个表的方法。 想知道是否有更好的方法。 从链接发布代码: private static List SplitTable(DataTable originalTable, int batchSize) { List tables = new List(); int i = 0; int j = 1; DataTable newDt = originalTable.Clone(); […]

c#linq从linq返回一个多维数组

我想返回一个多维数组来保存在一个会话中,但不知道如何从linq返回它: public string[] GetCountryAndManufacturerForUser(int userId) { var array = (from xx in _er.UserRoles join xy in _er.Countries on xx.CountryId equals xy.Id join xz in _er.Manufacturers on xx.ManufacturerId equals xz.Id where xx.UserId == userId select new { xy.Name, xz.Description }).ToArray(); return?? } 我知道我在这里做错了,不知道是什么。 编辑: 需要返回以下字段 – xy.Name,xz.Description 喜欢: { “1”, “aaa” }, { “2”, “bbb” } […]

为什么这个LINQ join语句不起作用?

我有这个LINQ查询: // types… LinkedList itemScores = new LinkedList(); var result = from i in _ctx.Items join s in itemScores on i.Id equals s._id orderby s._score descending select new ItemSearchResult(i, s._score); // this fails: return result.ToList(); 哪个生成此错误: 无法创建类型为’System.Collections.Generic.IEnumerable`1’的常量值。 在此上下文中仅支持基本类型(例如Int32,String和Guid’)。 [编辑]这是WeightedItem的代码: public class WeightedItem { public int _id; public decimal? _score; public WeightedItem(int id, decimal? score) { […]

为什么我没有在Linq Query()中获得.CopyToDataTable()

下面的代码示例来自MSDN。 我没有在我的代码中获得query.CopyToDataTable()。 (请参阅以下代码中的注释行)。 public static bool SetPhysicianAsNotonServer(DataTable dt) { DataTable dtPhysicianServer = dt; DataTable dtPhysicianClient = GetPhysicianClient(); var query = from SPhysician in dtPhysicianServer.AsEnumerable() join CPhysician in dtPhysicianClient.AsEnumerable() on SPhysician.Field(“PhysicianNumber”) equals CPhysician.Field(“PhysicianNumber”) select new { PhysicianNumber = CPhysician.Field(“PhysicianNumber”) }; DataTable FilterDt = query; //query.CopyToDataTable(); //YET TO DO CODE HERE return true; }

使用LINQ计算集合中的单词

我有一个StringCollection对象,其中包含5个单词。 其中3个是重复的单词。 我正在尝试创建一个LINQ查询,该查询将计算集合中有多少个唯一单词并将它们输出到控制台。 所以,例如,如果我的StringCollection有’House’,’Car’,’House’,’Dog’,’Cat’,那么它应该输出如下: 房子 – > 2 车 – > 1 狗 – > 1 猫 – > 1 有关如何创建LINQ查询的任何想法吗?

我需要根据复选框列表选择特定列

我有一个复选框列表,用户可以选中或取消选中复选框。 根据选中的复选框,我用以逗号分隔的方式存储该值。 现在问题是基于我需要单独获取该特定列的选中复选框。 在“选择”** db.Tasks.OrderBy(t => t.CreatedDate).ToList() .Select(t => new { Id = t.Id, PriorityId = t.ProjectId, Priority = t.Priority, StatusId = t.StatusId, Status = t.Status, EstimatedTime = t.EstimatedTime, ActualTime = t.ActualTime, Subject = t.Subject, FileName = t.FileName, AssignedTo = t.AssignedTo, Project = t.Project }).ToList(); 如果我选中复选框列表ActualTime,Subject,它应该是 db.Tasks.OrderBy(t => t.CreatedDate).ToList() .Select(t => new { Id = […]

Linq的“IN”操作员

我试图在Linq中使用Entity Framework转换旧的原始Sql查询。 它使用IN运算符和一组项目。 查询是这样的: SELECT Members.Name FROM Members WHERE Members.ID IN ( SELECT DISTINCT ManufacturerID FROM Products WHERE Active = 1) ORDER BY Members.Name ASC 由于子查询的返回不是单个字符串而是字符串集合,因此我无法使用String.Contains()方法。 我想过做的事情: var activeProducts = ( from products in db.ProductSet where product.Active == true select product.ManufacturerID); 然后 var activeMembers = ( from member in db.ContactSet where member.ID.ToString().Contains(activeProducts)); 但它停止在包含说它有无效的参数…我不能选择activeProducts.ManufacturerID,因为很明显,proprety不存在,因为它返回一个IQueryable … 我在这里要做的就是返回一个至少有一个活跃产品的成员列表。 […]

entity framework中的LINQ预测的可重用计算(代码优先)

我的域模型有很多复杂的财务数据,这是对各种实体的多个属性进行相当复杂计算的结果。 我通常将这些作为[NotMapped]属性包含在相应的域模型中(我知道,我知道 – 关于将业务逻辑放在您的实体中存在很多争议 – 务实,它只适用于AutoMapper并且允许我定义可重用的DataAnnotations – a讨论这是好还是不是我的问题。 只要我想实现整个实体(以及任何其他依赖实体,通过.Include() LINQ调用或在实现后通过其他查询),然后在查询后将这些属性映射到视图模型,这样就可以正常工作。 当尝试通过投影到视图模型而不是实现整个实体来优化有问题的查询时,会出现问题。 考虑以下域模型(显然简化): public class Customer { public virtual ICollection Holdings { get; private set; } [NotMapped] public decimal AccountValue { get { return Holdings.Sum(x => x.Value); } } } public class Holding { public virtual Stock Stock { get; set; } public int Quantity { […]

HtmlAgilityPack使用Linq for windows phone 8.1平台

由于Windows Phone 8.1尚不支持HtmlAgilityPack,因此在项目中手动引用是一种技巧解决方案。 但这不是唯一的问题。 我可以使用XPath为我过去的项目选择节点。 现在我可以看到HtmlDocumentNode.SelectNode()函数不再存在(因为版本兼容性可能)。 我在过去的项目中使用的与此类似 HtmlNode parent = document.DocumentNode.SelectSingleNode(“//ul[@class=’songs-list1′]”); HtmlNodeCollection x = parent.ChildNodes; 我搜索了stackoverflow和谷歌并得到了一个想法,仍然可以使用Linq选择节点。 我正在寻找一个像SelectNodes , SelectNode一样工作的代码块。 异步加载HtmlDocument将不胜感激。