Tag: linq

C#将每列的值转换为数组

我想转换一个C#对象或数据表,使每个列成为一个键,值成为一个数组 year productOne ProductTwo ProductThree 2010 1 2 3 2011 10 20 30 2012 100 200 300 2013 1000 2000 3000 我期待生成以下JSON输出。 请记住,行和列都不是动态的。 [{ name: productOne , data: [1,10,100,1000] },{ name: productTwo , data: [2,20,200,2000] },{ name: productThree , data: [3,30,300,3000] }]

为什么我不能删除只有.DeleteObject(o)的实体?

此代码有效: var c = cboCustomer.SelectedItem as Customer; var t = cboTrailer.SelectedItem as Trailer; using (var db = new CAPSContainer()) { db.Attach(c); db.Attach(t); c.Trailers.Remove(t); db.DeleteObject(t); db.SaveChanges(); } 但我不明白为什么我不能这样做: db.Attach(t); db.DeleteObject(t); db.SaveChanges(); 如果我尝试我得到: ‘CAPSContainer.Trailers’中的实体参与’CustomerTrailer’关系。 找到0个相关的“客户”。 1’客户’是预期的。 我首先使用EF 5.0模型,这里是edmx图的一部分: 我发现很难理解为什么,请帮忙。 更新1(如Boomer所建议): using (var db = new CAPSContainer()) { db.Attach(c); //db.Attach(t); //c.Trailers.Remove(t); db.DeleteObject(t); db.SaveChanges(); } 退货: 无法删除该对象,因为在ObjectStateManager中找不到该对象。

使用LINQ从xml填充List

我是LINQ的新手。 我需要使用xml中的信息填充以下类的List 。 class Person { int id; string name; string address; } List people = new List(); 在LINQ中执行此操作的正确方法是什么。 … … … 1 NameA AddressA 2 NameB AddressB .. .. 我需要知道LINQ表达式的结构才能直接到达标签。 此外,是否有任何用于填充List’, ie map快捷方式,即将Person List’, ie map to Instance`标签。

EF GroupBy:不包含’BriefTitle’的定义,也没有扩展方法’BriefTitle’接受类型的第一个参数

这个查询有什么问题? var model = SessionObjectsMSurvey.ContractList .Where(y => y.ContractTitle.ToUpper().Contains(upper)) .GroupBy(g => new { g.BriefTitle, g.ContractId }) .Select( x => new { label = x.BriefTitle, id = x.ContractId.ToString() }).Take(20); SessionObjectsMSurvey.ContractList是一个IEnumerable集合。 这不会编译,我得到; 错误13’System.Linq.IGrouping’不包含’BriefTitle’的定义,并且没有扩展方法’BriefTitle’接受类型’System.Linq.IGrouping’的第一个参数可以找到(你是否缺少using指令或者assembly参考?)

比较2个列表之间的值并减去常见元素的值 – C#

我需要准备一张图表,其中我需要显示3行。 一个用于显示一周的新问题,第二个用于一周的已结束问题,第三个用于一周的总公开问题。 出于这个原因,我准备了一个查询,并且能够成功创建2个单独的列表 – 一个列表维护每周新发布的计数,第二个列表维护每周的已关闭问题计数。 以下是第一个列表的示例数据(一个维护新问题的列表): [0]: { Week = {6/14/2015 12:00:00 AM}, Count = 1 } [1]: { Week = {3/5/2017 12:00:00 AM}, Count = 1 } [2]: { Week = {5/21/2017 12:00:00 AM}, Count = 4 } [3]: { Week = {6/4/2017 12:00:00 AM}, Count = 7 } [4]: { Week = {6/11/2017 […]

对集合中的所有对象运行方法

所以我有一系列由一系列Bloops创建的Razzies。 我使用Linq查询检索此集合。 参考: Linq选择某些属性到另一个对象? 用于查询。 我想知道是否可以在返回集合之前在所有新创建的Razzies上运行一个方法,或者甚至在不使用for循环之后立即运行。 我试过这个: Dim results = From item In bloops _ Select New Razzie() With _ { _ .FirstName = item.FirstName, _ .LastName = item.LastName _ }.UpdateAddress(item.Address) 但它什么也没有回报。

使用LINQ在List 中搜索重复条目

我有一个包含TextBox控件的列表。 基本上所有这些都分组在一个组框控件中。 List listTextBox; 每当调用groupboxvalidation事件时,我都需要检查这些TextBox中的任何重复条目。 我只能想到无聊的方法是按顺序遍历列表并每次解析文本框值,并查找是否有多个具有相同值的条目。 任何人都可以通过使用谓词来更有效地执行相同的操作来帮助我。 例如: list.Count(//predicate that gets the value for all textbox); 如果计数超过1,那么我确定文本框中有重复的条目。 还有其他更好的方法吗? 干杯VATSAG

如何扫描XElement并将所有元素(带有值)放在Dictionary中?

我的输入是XElement对象 – 我需要将此对象转换为Dictionary XElement看起来像这样 1 2 3 4 而我实际需要返回的输出是 看起来像这样的字典 [ Chile1, 1 ] [ Chile2, 2 ] [ Chile3, 3 ] [ Chile4, 4 ] 我该怎么做 ? 谢谢你的帮助。

如何快速将数据库中的数据导入对象列表(使用entity framework)

我在entity framework对象上使用linq语句将数据从数据库中获取到对象列表中。 我的问题是表现不错,表现得很好。 对于我处理的几百或几千行,它需要几秒钟。 我将在下面进一步介绍一个代码示例,但首先我要解释为什么我将数据放入对象列表中,之后我会回答我的问题: 我将数据放入对象列表中以轻松访问数据,并填充网格视图,填充combobox,并能够使用其他方法进行对象内部的计算和数据收集。 因为我很确定这个用例并不是那么少而且我得到的性能真的是abmyssal我认为我要错误地使用EF,错误地执行linq语句或者我的设计思想的一部分是完全错误的。 所以我的问题是我可以做些什么来提高性能(或者我是否需要将我的设计理念完全抛到窗外并完全不同……如果是这样的话)? 代码示例: 对象存储在数据层中的对象类中,数据层内部也有数据收集方法(如果这里有错误,请告诉我,因为我正在从内存中输入此内容): public class myobject { public id; public name; public static List GetData() { using (myentities entity = new myentities()) { List resultList = (from e in entity.mytable select new myobject{ id=e.id, name=e.name}).ToList(); } } } 当我调用myobject.GetData()几次例如填充3个combobox时,问题是对于几十个条目,每个条目几乎需要半秒钟。 如果我有几千个条目超过1秒。 尝试了一下后,我发现即使是使用(因此创建新的连接)并没有真正产生影响,性能真正源于我如何使用/获取对象列表(linq应该生成的sql和我一样快通常期望我在sql server maanagement studio中这样做。 更新我做了一些测试,也有点奇怪:当我使用String而不是一个对象时,它仍然很慢并且ToList本身需要太长时间。 例如,如果我取回68个条目则需要1.7秒。 其中0.5是ToList方法(这种现象很明显,因为数据仅在调用tolist时准备和收集,但是1.7秒之前只有几k的数据行太长)。 public […]

从列表中删除项目 – C#

我有一个复杂的数据结构。 简单版本如下所示: public class Field { List fieldRow; //I want to write a delete that iterates and deletes given the key //(Use Linq?) public void DeleteByKey(int key) { //Do Remove } } public class FieldRow { public int key; } 任何实现删除的帮助表示赞赏。