Tag: linq

EF Code First – Linq to Entities Union EqualityComparer

我有两个IEnumerable集合,我想结合。 一个选择与特定类别相关联的新闻对象。 当用户按类别过滤时,我还希望显示已标记有其他类别的新闻文章。 所以我有另一个查询返回标记有特定子类别的新闻对象。 现在我想结合两个集合,删除重复项(作为与主类别相关联的新闻文章,也可以用第二类标记)。 var catNews = model.Category.News.SelectMany(n => n.News); //get news article associated to the category var tagNews = _nr.GetNews(model.Category.relatedCategoryName); //this selects news by tags – which I want as the related category name model.News = catNews.Union(tagNews).OrderByDescending(p => p.Date); //union the two collections 但是,model.News现在包含两篇相同的新闻文章,我不确定为什么联盟应该使用默认的相等比较器? 我在这里做错了吗? 我使用的是EF Code First,我的主键是新闻ID。 我解决这个问题的方法是将一个catNews id列表传递给GetNews函数并排除它们 if (excludeIds != […]

合并多个列表

鉴于我有一个列表列表, List <List> ,其中所有列表包含0个或更多项,可能但不一定都是相同的数字。 我希望有一个包含列表中所有项目的列表…但我希望订单如下:首先是所有列表中的第一个项目,以便它们出现在“超级列表”中。 防爆。 List[0] = { ‘Apple’, ‘Blueberry’, ‘Cranberry’ } List[1] = { ‘Anteater’, ‘Baboon’, ‘Camel’, ‘Dodo’} List[2] = { ‘Albatross’, ‘Blackbird’, ‘Chicken’} result = { ‘Apple’, ‘Anteater’, ‘Albatross’, ‘Blueberry’, ‘Baboon’, ‘Blackbird’, ‘Cranberry’, ‘Camel’, ‘Chicken’, ‘Dodo’ } (请注意,这不是按字母顺序排列的,Blueberry出现在Baboon之前) 当然,只要有一个非空的列表,我就可以通过计数器循环遍历’superlist’,逐个将项添加到结果列表中: int i = 0; bool done = false; while (!done) { bool found […]

如何在C#中的DataTable.Rows.Count上创建n对象?

以下所有代码仅用于创建两个进程。 虽然我需要创建n进程来打开Chrome浏览器并基于dtUser.Rows.Count运行OpenNRowsInData(user, pwd) ,因为这是动态的。 我不知道为什么OpenNRowsInData(user, pwd); 总是只获得第一行。 我有一个1-7行的DataTable范围。 通常,我通常用来创建两个对象。 static myObject[] browser = new myObject[] { new myObject(Browsers.Chrome, 0), new myObject(Browsers.Chrome, 0) }; Thread t1, t2; t1 = new Thread(new ThreadStart(AllCase)) { Name = “Thread1” }; t1.Start(); t2 = new Thread(new ThreadStart(AllCase)) { Name = “Thread2” }; t2.Start(); 在AllCase类中: static int[] stepRun = { 0, […]

C# – 两个大字符串数组的模糊比较

我需要在B中找到“部分”存在于A中的所有字符串。 B = [ “Hello World!”, “Hello Stack Overflow!”, “Foo Bar!”, “Food is nice…”, “Hej” ] A = [ “World”, “Foo” ] C = B.FuzzyCompare(A) // C = [ “Hello World!”, “Foo Bar!”, “Food is nice…” ] 我一直在研究使用Levenshtein Distance Algorithm来解决问题的“模糊”部分,以及迭代的LINQ 。 但是,A * B通常会导致超过15亿次比较。 我该怎么办呢? 有没有办法快速“几乎比较”两个字符串列表?

在LINQ中将字符串转换为Int

我有一个查询DataTable的LINQ查询。 在DataTable中,字段是一个字符串,我需要将它与一个整数进行比较,基本上: if ((electrical >= 100 && electrical <= 135) || electrical == 19) { // The device passes } 问题是,我试图在LINQ中这样做: var eGoodCountQuery = from row in singulationOne.Table.AsEnumerable() where (Int32.Parse(row.Field(“electrical”)) >= 100 && Int32.Parse(row.Field(“electrical”)) <= 135) && Int32.Parse(row.Field(“electrical”)) != 19 && row.Field(“print”) == printName select row; 我一直得到例外: 输入字符串的格式不正确 电气==“”时会出现主要问题

Linq没有输出到XML

我有以下代码: protected void Page_Load(object sender, EventArgs e) { XElement xml = XElement.Load(Server.MapPath(“ArenasMembers.xml”)); var query = from p in xml.Descendants(“members”) select new { Name = p.Element(“name”).Value, Email = p.Attribute(“email”).Value }; foreach (var member in query) { Response.Write(“Employee: ” + member.Name + ” ” + member.Email + “”); } } 其中,使用Visual Studio中的hover信息正在正确读取XNL文件,但是foreach没有输出任何记录。 XML: EAA Office 1 Jane […]

从平面表中表示的父/子关系创建树

我有一个由存储过程返回的以下字段的C#列表: CarrierId ParentCarrierId Name Descrition 1 NULL A AA 2 1 B BB 3 1 C CC 4 3 D DD 5 NULL E EE 我需要从这个输出中构造一个嵌套对象列表 因此,承运人的每个对象都应该列出所有孩子的名单。 任何人都可以帮我构建一个LINQ代码来实现这一目标吗? 期望的结果: CarrierId = 1 |__________________ CarrierId = 2 | |__________________ CarrierId = 3 | | |___________________ CarrierId = 4 CarrierId = 5 期望的结果应如上所述 以下代码在树中排列,但子项仍显示在列表中 c.Children = carrierList.Where(child […]

String.Where相对较差的表现

我有两个方法接受一个字符串并删除任何“无效”字符(哈希集中包含的字符)。 一种方法使用Linq.Where,另一种方法使用循环w / char数组。 Linq方法需要几乎两倍的长度(208756.9滴答)与循环(108688.2滴答) LINQ: string Linq(string field) { var c = field.Where(p => !hashChar.Contains(p)); return new string(c.ToArray()); } 环: string CharArray(string field) { char[] c = new char[field.Length]; int count = 0; for (int i = 0; i < field.Length; i++) if (!hashChar.Contains(field[i])) { c[count] = field[i]; count++; } if (count == 0) […]

Group By使用C#LINQ的任一列

我有一组数据,如下所示 OffName,RO1,RO2,RO3 为了进一步解释,我使用如下样本数据: OffName RO1 RO2 RO3 A John Jack Rob B Earl John Carl C Rob Chris Kenny D Rodney Carl Jacob RO代表报告官。 每个官员报告最多3个RO.i需要报告我需要显示RO的分组,无论该人员是RO1或RO2还是RO3。约翰是A级的RO1和B级的RO2,因此,当按照约翰逊的RO分组时,我希望A和B都被选中。对于B级官员来说,Carl是RO3,对于D级官员来说是RO2,所以当由Ro在Carl下分组时,B&D官员都将被选中。 因此,对于按RO分组的上述数据,我希望结果为 RO OffName John AB Jack A Rob AC Earl B Carl BD Chris C Kenny C Rodney D Jacob D 任何帮助都会很棒 谢谢。

有条件加入Linq

有没有办法逐步/有条件地添加连接到查询? 我正在为客户端创建自定义报告工具,并为客户端提供他/她可以选择查询的对象列表。 查询中总会有一个基础对象(“FWOBid”)。 因此,例如,如果客户选择对象“FWOBid”,“FWOItem”和“FWOSellingOption”,我想要这样做: var query = from fb in fwoBids // if “FWOSellingOption”, add this join join so in sellingOptions on fb.Id equals so.BidId // if “FWOItem”, add this join join i in fwoItems on fb.Id equals i.FWOBidSection.BidId // select “FWOBid”, “FWOItem”, and “FWOSellingOption” (everything user has selected) select new { FWOBid = fb, […]