Tag: linq

LINQ to XML。 如何获得一些字符串?

我有xml: Ray Other LargeCover MiniCover 如何获得字符串“MiniCover”? 我写了代码,但它不起作用 – 字符串是空的; string testLink = (@”Text.xml”); XDocument xml = XDocument.Load(testLink); string cv = String.Empty; var c = from cover in xml.Elements(“book”) where (string)cover.Attribute(“size”).Value == “mini” select cover.Value; foreach (var item in c) { cv += item.ToString(); } MessageBox.Show(cv); 谢谢!

使用LINQ循环外部类集合中的内部类属性

利用Q&As处理循环对象的属性( https://stackoverflow.com/questions/15586123/loop-through-object-and-get-properties , 循环通过C#中的对象属性 ),您可以在其中: Class1对象的集合(即listObj1) 每个Class1包含一个Class2对象的集合(即dictObj2) 你好吗? 有效地确定内部类的属性(Class2) 循环遍历内部类的属性(Class2) 循环遍历Class1对象的集合(listObj1),选择Class2属性的所有实例 输出Class2属性的集合(例如,第一次迭代将返回MeasurementA的集合,每个Class1对象一个)。 并按Class1.PropertyA和Class1.PropertyB对集合进行分组 请在下面找到所涉及课程的粗略地图。 我一直试图使用LINQ查询但没有成功。 任何想法或指导将不胜感激。 class MainClass { List listObj1 } class Class1 { // a number of fields including… int PropertyA { get; set; } int PropertyB { get; set; } Dictionary dictObj2 { get; set; } } class Class2 { // a […]

XDocument使用不同的本地名称重复命名空间

我有一个XML文档,如下所示: 我使用下面的代码来修改文档的Property Element: XElement csdlEentity = csdlDoc.Root.Descendants() .Where(d => d.Name.LocalName == “EntityType”) .FirstOrDefault(e => e.Attribute(“Name”).Value == “Customer”); var csdlProperty = csdlEentity.Descendants() .Where(d => d.Name.LocalName == “Property”) .FirstOrDefault(e => e.Attribute(“Name”).Value == “Id”); XNamespace annotation = “http://schemas.microsoft.com/ado/2009/02/edm/annotation”; var attrib = new XAttribute(annotation + “StoreGeneratedPattern”, “Computed”); csdlProperty.Add(attrib); 当我保存XDocument时,Property Element看起来像: 不过我想要的是: 问题是xmlns“ http://schemas.microsoft.com/ado/2009/02/edm/annotation ”在文档的根节点中被引用两次,带有两个不同的别名/ LocalNames(注释,p1) xmlns:annotation=”http://schemas.microsoft.com/ado/2009/02/edm/annotation” xmlns:p1=”http://schemas.microsoft.com/ado/2009/02/edm/annotation” 我无法更改或篡改根节点。 如何保存文档或更新属性元素以提供所需的输出?

entity .ToList()生成一个System.OutOfMemoryException

我有一张五十万行的表。 我需要更新每一行,但ToList()失败: List allContacts = objDatabase.Contacts.ToList(); 我每次都得到一个System.OutOfMemoryException。 有没有解决的办法? 我已经有了App.Config的解决方法,但仍然没有去: 我是64位机器,内存为8GB

自定义扩展方法简化LINQ to SQL语句

我有一段LINQ代码,我需要在很多查询中使用它 let catchmentId = Convert.ToInt32( phy.PhysicalProperty_binData.Substring(offset + 3, 1) + phy.PhysicalProperty_binData.Substring(offset + 2, 1) + phy.PhysicalProperty_binData.Substring(offset + 1, 1) + phy.PhysicalProperty_binData.Substring(offset, 1)) 这很好地转换为SQL(并且不仅仅符合我的特定需求),但使我的查询看起来很难看。 有什么方法可以让这个更简洁吗? 也许是一个返回Expression>的扩展方法? 请注意,我不想将数据提取到客户端(在服务器上以SQL运行),这使事情变得更复杂一些。 例如: let catchmentId = phy.PhysicalProperty_binData.AnExtensionMethodHere(offset) 我尝试编写一个执行此操作的扩展方法,但提供程序只是忽略该调用或抛出exception,表明它不知道如何将该调用转换为SQL。 我们可以以某种方式扩展SQL生成器来为我们这样做或者以一种生成相同SQL的方式提供它吗? 提前致谢!

LINQ To Entities无法识别数组索引

我的代码中有以下function public List GetpathsById(List id) { List paths = new List(); for (int i = 0; i m.PresId == id[i]).FirstOrDefault(); paths.Add(press.FilePath); } return paths; } 但是当我尝试这个时,compiller会得到这样的错误。 LINQ to Entities does not recognize the method ‘Int64 get_Item(Int32)’ method, and this method cannot be translated into a store expression. 然后我尝试做这样的事情,一切正常。 public List GetpathsById(List id) { long x; […]

LINQ查询重用和延迟执行

我的印象是我可以创建一个LINQ查询,然后在更改所涉及的参数时重复使用它。 但似乎你无法改变源集合。 有人可以给我一个很好的解释,为什么,因为我明显误解了一些基本的东西。 这是一些示例代码。 var source = Enumerable.Range(1, 10); var value = source.Where(x => x > 5); var first = value.ToArray(); source = Enumerable.Range(11, 20); var second = value.ToArray(); 我期待第一个是6,7,8,9,10,第二个是11到20。

GroupBy从IEnumerable对象列表中删除重复项

我有一个重复名称的列表,我想获得没有重复的列表。 CSVCategories = from line in File.ReadAllLines(path).Skip(1) let columns = line.Split(‘,’) select new Category { Name = columns[9] }; var results = CSVCategories.GroupBy(x => x.Name) .Select(g => g.FirstOrDefault()) .ToList(); 我尝试使用以下循环查看元素和调试,但它仍然返回列表中的重复项,包括空值的空字符串: foreach(var item in results) { Console.WriteLine(item.Name); }

使用Singleton模式到Linq到Sql数据上下文

我在Linq to SQL中有一些困惑。我正在寻找数据上下文类有时会给出以下exception的实际原因。 “已经有一个与此命令关联的开放数据阅读器必须先关闭 特别是在多任务环境中。大多数人都说,原因是,数据上下文不是线程安全。所有建议使用DataContex作为每个单元的工作。 请参考以下主题以获得最佳答案 跨多个线程的Linq-to-SQL数据上下文 但在我的情况下,我正在使用另一个类调用“A”,它是以Singleton模式实现的。这个类的目的是以单例方式提供数据上下文对象。我维护此类“A”的实例作为派生的全局实例类和使用特定实例调用Datacontex。 我的问题是, 我的方法调用会导致不受控制的内存增长吗? 根据我的理解,单例维护一个实例作为静态对象。如果我的假设是错误的,请给我很好的解释。 注意: 我的方法调用的任何方式也抛出相同的exception。所以我相信在这种情况下也会发生同样的问题。

数组组合的数组

如何使用LinQ / C#生成相反值的各种组合我有一个数组中的运算符列表,如”> < = + ="我也有一个函数可以返回一个数组中每个项的相反值。相反的值”>”是”<"等等。因此,考虑每个值的反向运算符如何生成各种可能的组合 示例:问题陈述: `string[] arrSample = new string[]{“!=”,”=”};` //arrSample can be any object array with property values.The property can accept operator values like !=,=,>,< etc.. 预期输出:考虑反向运算符的各种组合将是 Output Sequence1: =,!= Output Sequence2: !=,= Output Sequence3: = , = Output Sequence4: !=,!=