Tag: linq

Linq:如果参数为null,如何排除条件

我有一些表和以下查询条件:如果参数A为null,则取全部,如果不是,则在查询中使用它。 我知道如何分两步完成: List list = null; if (A = null) { list = context.Obj.Select(o => o).ToList(); } else { list = context.Obj.Where(oA == A).ToList(); } 是否有可能与一个查询相同? 谢谢

使用IEqualityComparer for Union

我只是想从两个列表中删除重复项并将它们组合成一个列表。 我还需要能够定义重复的内容。 我通过ColumnIndex属性定义副本,如果它们相同,则它们是重复的。 这是我采取的方法: 我找到了一个很好的例子,说明如何为代码段中只需要一次的随机场所编写内联比较器。 public class InlineComparer : IEqualityComparer { private readonly Func getEquals; private readonly Func getHashCode; public InlineComparer(Func equals, Func hashCode) { getEquals = equals; getHashCode = hashCode; } public bool Equals(T x, T y) { return getEquals(x, y); } public int GetHashCode(T obj) { return getHashCode(obj); } } 然后我只有两个列表,并尝试使用比较器对它们进行联合。 var formatIssues […]

使用Linq获取列表的项目计数

我想查询List 并找出MANY项如何与选择条件匹配。 使用LINQ和c#/.net 3.5。 如何修改查询以返回int计数。 var specialBook = from n in StoreDisplayTypeList where n.DisplayType==”Special Book” select n;

将Linq查询结果映射到DTO类

我想使用EF从数据库中获取记录并将值分配给DTO类。请考虑以下表格以获取Linq查询。 表A,表B,表C. 对于每个TableA记录,TableB中有多个记录。 对于每个TableB记录,TableC中有多个记录。 现在我的DTO看起来像这样 public class TableA_DTO { public int tableA_rowid { get; set; } //remaining tableA field definitions public List TableB_records { get; set; } } public class TableB_DTO { public int tableB_rowid { get; set; } //remaining tableB field definitions public List TableC_records { get; set; } } public class TableC_DTO { […]

使用LINQ从C#中的genericsList过滤值的最简单方法

我有两节课。 第一个是Person ,第二个是Student (inheritance自Person)。 我想过滤一个通用列表 ,找到所有等级高于7的 学生 。 我提出了以下解决方案: class Person { public string Name {get; set;} } class Student : Person { public decimal Grade {get; set;} } class Program { static void Main(string[] args) { List people = new List(); people.Add(new Person() {Name=”John”}); people.Add(new Student() {Name=”Joe”, Grade=6}); people.Add(new Student() {Name=”Jane”, Grade=8}); people.Where(delegate (Person […]

使用Linq选择类的属性以返回IEnumerable

如果我有一个SortedList ,我想从该类返回一个新的IEnumerable属性,我该怎么做? 我尝试过SortedList.Select(x=>x.MyProperty, x.AnotherProperty)但它不起作用。 谢谢。

C#LINQ组合:没有空集的集合的所有组合

我有一组字符串,我想找到所有可能的字符串组合并将它们添加到列表中。 我想最终得到一个列表,列出每个字符串组合,减去空集。 我已经创建了一个解决方案,它完全使用嵌套的for循环。 但是我想更优雅地做到这一点,最好是使用LINQ ,而我对它并不是那么精通,因为我还是很陌生。 解决方案应该有2 ^ n – 1个组合列表,其中n是原始集合的基数。 以下是我正在寻找的正确例子: set = {a, b, c} completedListOfCombinations = { {a}, {b}, {a, b}, {c}, {a, c}, {b, c}, {a, b, c} } 这是我的工作,基本但丑陋的解决方案,我在以下帮助下制作: https : //stackoverflow.com/a/3319652/3371287 List myStrings = new List { “a”, “b”, “c” }; var allCombos = new List<List>(); for (int i = […]

使用LINQ查询XDocument的最佳方法?

我有一个XML文档,其中包含一系列项目节点,如下所示: XYZ lorem ipsum 123 Adam Savage 90210 我想LINQ它成为这样的匿名类型: var mydata = (from root in document.Root.Elements(“item”) select new { label = (string)root.Element(“label”), description = (string)root.Element(“description”), id = …, name = …, zip = … }); 根据’type’属性的值拉取每个参数类型的最佳方法是什么? 由于有许多参数元素,因此您最终会使用root.Elements(“parameter”)作为集合。 我能想到的最好的方法是通过下面的方法,但我觉得必须有更好的方法吗? (from c in root.Descendants(“parameter”) where (string)c.Attribute(“type”) == “id” select c.Value).SingleOrDefault()

从枚举中获取下一个N个元素

上下文:C#3.0,.Net 3.5 假设我有一个生成随机数的方法(永远): private static IEnumerable RandomNumberGenerator() { while (true) yield return GenerateRandomNumber(0, 100); } 我需要将这些数字分组为10组,所以我想要像: foreach (IEnumerable group in RandomNumberGenerator().Slice(10)) { Assert.That(group.Count() == 10); } 我已经定义了Slice方法,但我觉得应该已经定义了一个。 这是我的Slice方法,仅供参考: private static IEnumerable Slice(IEnumerable enumerable, int size) { var result = new List(size); foreach (var item in enumerable) { result.Add(item); if (result.Count == size) { yield return […]

使用LINQ拆分数组

我有一个像这样的单维集合: [1,2,4,5…..n] 我想在这样的二维集合中转换该集合: [[1,2,3], [4,5,6], …] 基本上我想要分组或拆分,如果你想要的话,数组是’n’个成员 我可以用foreach语句来做,但我目前正在学习LINQ,所以不是迭代遍历所有元素并手动创建一个新数组,我想使用LINQfunction(如果适用) 有没有LINQ函数来帮助我完成这个? 我想在GroupBy或SelectMany我不知道他们是否会帮助我,但他们可能会 任何帮助将真正欣赏它=):**