Tag: linq

Linq到Xml,保持XDocument加载?

假设我正在制作一个WinForms程序,它将在幕后使用XML文档作为持久性机制…… 以下两种方法的优缺点是什么? 在每个方法调用中加载XDocument: public class XmlFoosRepository { string xmlFileName; public XmlFoosRepository(string xmlFileName) { this.xmlFileName = xmlFileName; } public int AddFoo(Foo foo) { var xDoc = XDocument.Load(xmlFileName); // Always call Load() // … xDoc.Save(xmlFileName); return foo.ID; } public IEnumerable<Foo> GetFoos() { var xDoc = XDocument.Load(xmlFileName); // Always call Load() // … return foos; } } 要么 […]

我可以使用LINQ更优雅地重写它吗?

我有一个double[][] ,我想转换为CSV字符串格式(即一行中的每一行,以逗号分隔的行元素)。 我这样写的: public static string ToCSV(double[][] array) { return String.Join(Environment.NewLine, Array.ConvertAll(array, row => String.Join(“,”, Array.ConvertAll(row, x => x.ToString()))); } 有没有更优雅的方式来使用LINQ写这个? (我知道,可以使用临时变量来使这看起来更好,但这种代码格式更能传达我想要的东西。)

LINQ:如何在linq中动态使用ORDER BY,但仅限于变量不是string.empty或null

我正在使用LINQ2SQL,它的工作非常好。 但是,根据C#中变量类型字符串的值,我需要在查询中使用“Order By”或不使用“order by”。 如果C#字符串不为null或为空,那么我想对字符串变量的内容进行“排序依据”。 如果C#字符串为空或为null,那么我不包含顺序。 是否可以编写这种查询?

将列入字典

我有一个List ,它有3个属性A,B,C,我需要的是将这个List转换为Dictionary,结果看起来像 Dictionary (Property name) A = Value of A (Property name) B = Value of B (Property name) C = Value of C 请建议……

将嵌套的foreach循环转换为LINQ

我编写了以下代码来设置各种类的属性。 它可行,但我的新一年的解决方案之一是尽可能多地使用LINQ,显然这段代码没有。 有没有办法以“纯LINQ”格式重写它,最好不使用foreach循环? (如果可以在单个LINQ语句中完成,则更好 – 子语句很好。) 我试着玩join但这并没有把我带到任何地方,因此我要求回答这个问题 – 最好没有解释,因为我更喜欢“反编译”解决方案以弄清楚它是如何工作的。 (正如你可能猜到的那样,我目前在阅读LINQ方面比写它更好,但我打算改变它…) public void PopulateBlueprints(IEnumerable blueprints) { XElement items = GetItems(); // item id => name mappings var itemsDictionary = ( from item in items select new { Id = Convert.ToUInt32(item.Attribute(“id”).Value), Name = item.Attribute(“name”).Value, }).Distinct().ToDictionary(pair => pair.Id, pair => pair.Name); foreach (var blueprint in blueprints) { foreach […]

如何在数据库中保存图片?

我正在研究Linq To Sql,WPF和我有一个数据库现在我需要在数据库中保存一些图片,但我不知道哪个是正确的数据类型来保存图片数据库(这个数据库将连接10个用户在同一时间)。 你能指出我正确的方法来克服这一步吗? 如果我没有错,那么在数据库中保存图片并不是一个好主意,但如果你能给我一个更好的方法,我会应用它。 非常感谢你的时间。 不错的问候

过滤IQueryable子列表

使用entity framework,但这可能无关紧要如果我有一个Iqueryable,我如何过滤子列表并保持IQueryable,以便它还没有达到数据库? 如果我有10个项目并且每个项目有3个子项目,我该如何过滤它以便返回所有10个项目并且它们的子项目被过滤到id = 1的位置? class Item上有大约20个属性,所以我不想在每个属性上使用投影,因为维护问题。 items = items.select(??);//how to do this so items are returned, and their children are filtered? class SubItem { private int ID { get; set; } } class Item { private List SubItems { get; set; } }

查找第一个大写字符的索引

作为一个C#新手,目前要找出一个字符串中第一个大写字符的索引,我已经想出了办法 var pos = spam.IndexOf(spam.ToCharArray().First(s => String.Equals(s, char.ToUpper(s)))); 从function上来说,代码工作正常,只是我有两次遍历字符串的不适,一次找到字符然后找到索引。 是否有可能使用LINQ在一次传递中获取第一个UpperCase字符的索引? C ++中的等价方式就像是 std::string::const_iterator itL=find_if(spam.begin(), spam.end(),isupper); 一个等效的Python语法 next(i for i,e in enumerate(spam) if e.isupper())

使用linq从xml获取键值对

如何使用linq从此xml示例中提取键值对:

传递Func keySelector错误

static void Main() { string[] a = { “a”, “asd”, “bdfsd”, “we” }; a = a.OrderBy(fun).ToArray(); } private static int fun(string s) { return s.Length; } 它给出了编译时错误。 我知道我们可以用这样的Lambda表达式做到这一点。 a.OrderBy(s=>s.Length).ToArray(); 但我想通过定义不同的function来做到这一点。 我做错了什么?