Tag: linq

如何/我可以使用linq to xml查询具有合理内存消耗的巨大xml文件?

我没有对linq to xml做过多少工作,但我见过的所有例子都将整个XML文档加载到内存中。 如果XML文件是8GB,你真的没有选择怎么办? 我的第一个想法是将XElement.Load方法(TextReader)与FileStream类的实例结合使用。 问题:这是否有效,这是解决搜索非常大的XML文件问题的正确方法吗? 注意:不需要高性能..我正在尝试获取linq到xml基本上完成程序的工作我可以编写循环遍历我的大文件的每一行并收集,但因为linq是“循环中心” “我希望这是可能的……

如何更改C#中返回的默认值(T)?

我想改变默认(T)对某些类的行为。 因此,我想返回一个null对象,而不是为我的引用类型返回null。 有一些像 kids.Clear(); var kid = kids.Where(k => k.Age < 10).SingleOrDefault(); if (kid is NullKid) { Console.Out.WriteLine("Jippeie"); } 任何人都知道这是否可能?

C#Linq与对象的一部分相交/除外

我环顾四周,在这里找不到任何帮助。 我有一节课: class ThisClass { private string a {get; set;} private string b {get; set;} } 我想使用Linq的Intersect和Except方法,即: private List foo = new List(); private List bar = new List(); 然后我单独填写两个列表。 我想做,例如(我知道这不对,只是伪代码),如下: foo[a].Intersect(bar[a]); 我该怎么办? 谢谢你的帮助 :)

使用Linq使用C#更新XML

我的XML文件结构 1 True Star Wars Figures LukeSkywalker 通过ITEMID从XML读取数据 XDocument xmlDoc = XDocument.Load(HttpContext.Current.Server.MapPath(“data.xml”)); var items = from item in xmlDoc.Descendants(“item”) where item.Element(“itemID”).Value == itemID select new { itemID = item.Element(“itemID”).Value, isGadget = bool.Parse(item.Element(“isGadget”).Value), name = item.Element(“name”).Value, text1 = item.Element(“text1”).Value, } foreach (var item in items) { …. } 如何按itemID更新XML数据? 谢谢!

Linq – 找出延期执行的最快方法是什么?

找出哪些.net框架linq方法(例如.IEnumerable linq方法)使用延迟执行而不是使用延迟执行实现的最快方法是什么。 在编码很多次的时候,我想知道这个是否会以正确的方式执行。 找出答案的唯一方法是访问MSDN文档以确保。 会不会有更快的方式,任何目录,网络上的任何列表,任何备忘单,你可以分享的任何其他技巧? 如果是,请这样做。 这将有助于许多linq新手(像我一样)减少错误。 唯一的另一个选择是检查文档,直到一个人使用它们足以记住(这对我来说很难,我往往不记得某些地方记录的“任何东西”,可以查找:D)。

查找与groupby

我想知道groupBy和ToLookup扩展方法之间的区别是什么。 让我们有一个像这样的对象列表: public class Person { public uint Id { get; set; } public string Name { get; set; } public DateTime Birthday { get; set; } } List People { get; set; } 现在我可以使用上面的扩展方法: var groupedPeople = People.GroupBy((x) => x.Id); var lookupPeople = People.ToLookup((x) => x.Id); 这些陈述之间有什么区别? 提前致谢。 马可B.

返回列表中的最大重复项

List prod = new List(); prod.Add(“dfg”); prod.Add(“dfg”); prod.Add(“ojj”); prod.Add(“dfg”); prod.Add(“e”); 在上面的代码中prod List有项目“dfg”重复三次(最大计数)…我想要“dfg”作为输出,因为这个项目重复最多次。 任何人都可以帮忙

AutoMapper for Func在选择器类型之间

我有两种类型: Dog 。 我想用Func来选择Cats。 要做到这一点,我需要一种方法在某种映射器中将属性从Cat映射到Dog(类似于AutoMapper将属性从一个对象映射到另一个对象类型)。 我想象的是这样的: public Cat GetCat(Func selector) { Func mappedSelector = getMappedSelector(selector); return _catRepository.Get(mappedSelector); } private Func getMappedSelector(Func selector) { //some code here to map from one function type to another //something like AutoMapper would be sweet… //something that I can configure how I want the properties to be mapped. } 要么已经有了这样或应该有的东西。

动态访问EF Core 2.0中的表

我正在使用System.Linq.Dynamic.Core将lambda表达式动态添加到EF中的查询。 我也希望能够按名称选择表格。 我找到了这个答案: https://stackoverflow.com/a/28101268/657477 但它不适用于asp.net core 2.0。 我不能使用DbSet我必须使用DbSet它在错误消息中说。 我希望能够做db.GetTable(“Namespace.MyTable”).Where(…) 我怎样才能做到这一点?

从与LINQ连接的两个DataTable创建组合的DataTable。 C#

我有以下代码用两个简单的SQL查询填充dataTable1和dataTable2 , dataTableSqlJoined从相同的表填充但连接在一起。 我正在尝试编写一个可以创建dataTableLinqJoined的LINQ查询,就好像它是使用SQL创建的一样。 在下面的示例中,它仅返回dataTable1中的值。 我遇到的问题是在linq查询的SELECT中放入什么。 如何创建包含DataRows中所有列的新DataRow。 在运行时之前,我不会知道查询的确切列名/模式。 sqlCommand = new SqlCommand(“SELECT ID, A, B FROM Table1”, sqlConnection, sqlTransaction); sqlAdapter = new SqlDataAdapter(sqlCommand); DataTable dataTable1 = new DataTable(); sqlAdapter.Fill(dataTable1); sqlCommand = new SqlCommand(“SELECT ID, C, D FROM Table2”, sqlConnection, sqlTransaction); sqlAdapter = new SqlDataAdapter(sqlCommand); DataTable dataTable2 = new DataTable(); sqlAdapter.Fill(dataTable2); sqlCommand = new SqlCommand(“SELECT Table1.ID, […]