标签: linq-to-objects

过滤属性值上的linq列表

我有一个List<int>和一个List<customObject>.customObject类具有ID属性.如何获取List<customObject>仅包含List<int>使用LINQ中ID属性的对象?

编辑:我接受了Konrads的回答,因为它更容易/更直观地阅读.

.net linq linq-to-objects

18
推荐指数
4
解决办法
4万
查看次数

如何获得IEnumerable的第一个元素

是否有更好的方法来获取IEnumerable类型的第一个元素:

foreach (Image image in imgList)
{
     picture.Width = (short)image.Columns;
     picture.Height = (short)image.Rows;
     break;
}
Run Code Online (Sandbox Code Playgroud)

这是类型的确切声明:

public class ImageList : IEnumerable, IDisposable
Run Code Online (Sandbox Code Playgroud)

.net c# ienumerable linq-to-objects html-lists

17
推荐指数
3
解决办法
2万
查看次数

TakeWhile,但也得到了阻止它的元素

我想TakeWhile在LINQ to Objects上使用LINQ 函数.但是,我还需要知道"破坏"函数的第一个元素,即条件不正确的第一个元素.

是否有一个函数可以获取所有不匹配的对象,加上第一个对应的函数?

例如,给定集合{1, 2, 3, 4, 5, 6, 7, 8},

mySet.MagicTakeWhile(x => x != 5);
Run Code Online (Sandbox Code Playgroud)

=> {1, 2, 3, 4, 5}

.net c# linq linq-to-objects

17
推荐指数
2
解决办法
4720
查看次数

LINQ表达式中的异常处理

我有一个简单的LINQ表达式,如:

newDocs = (from doc in allDocs
       where GetDocument(doc.Key) != null
       select doc).ToList();
Run Code Online (Sandbox Code Playgroud)

问题是,GetDocument()可能会抛出异常.如何忽略GetDocument(doc.Key)== null或抛出异常的所有doc元素?

旧学校的相同代码如下:

foreach (var doc in allDocs)
            {
                try
                {
                    if (GetDocument(doc.Key) != null) newDocs.Add(doc);
                }
                catch (Exception)
                {
                    //Do nothing...
                }
            }
Run Code Online (Sandbox Code Playgroud)

c# linq-to-objects

16
推荐指数
3
解决办法
2万
查看次数

如何使用LINQ来避免嵌套循环?

我一直在阅读关于LINQ to Objects的内容,现在我的同事希望我把它呈现给他们.

现在,我对运算符和语法选择有了一个很好的理解,但我听说你可以通过使用LINQ 避免重度嵌套循环.我无法想出一套好的"之前和之后"代码清单来证明这一点.

我在Magennis的书中找到了使用和不使用LINQ进行排序和分组的一个很好的例子,他还有一个编写xml的例子.但那些嵌套循环呢?这是否是一个现实的主张,因为我们通常需要一个foreach或两个循环来迭代查询结果?

如果有人能向我解释这个想法(理想情况下有具体的例子),我将非常感激.

c# linq-to-objects

16
推荐指数
2
解决办法
6052
查看次数

Linq Group on Multiple Fields - VB.NET,Anonymous,Key

我很难过.我需要帮助.我有一个带有重复患者地址数据的DTO对象.我只需要获得唯一的地址.

Dim PatientAddressDto = New List(Of PatientAddress)

{Populate PatientAddressDto with lots of duplicate data}

PatientAddressDto = (From d In PatientAddressDto
                    Group d By PatientAddressDtoGrouped = New PatientAddress With {
                                                              .Address1 = d.Address1,
                                                              .Address2 = d.Address2,
                                                              .City = d.City,
                                                              .State = d.State,
                                                              .Zip = d.Zip
                                                              }
                  Into Group
                  Select New PatientAddress With {
                                                  .Address1 = PatientAddressDtoGrouped.Address1,
                                                  .Address2 = PatientAddressDtoGrouped.Address2,
                                                  .City = PatientAddressDtoGrouped.City,
                                                  .State = PatientAddressDtoGrouped.State,
                                                  .Zip = PatientAddressDtoGrouped.Zip
                                                  }).ToList()
Run Code Online (Sandbox Code Playgroud)

我试过以下没有运气:

PatientAddressDto = (From d In PatientAddressDto
                    Select New PatientAddress With { …
Run Code Online (Sandbox Code Playgroud)

linq vb.net linq-to-objects

16
推荐指数
2
解决办法
2万
查看次数

LINQ to Objects是否保持其顺序

我有一个List<Person>,而是希望将它们转换为简单处理为a List<string>,执行以下操作:

List<Person> persons = GetPersonsBySeatOrder();
List<string> seatNames = persons.Select(x => x.Name).ToList();

Console.WriteLine("First in line: {0}", seatNames[0]);
Run Code Online (Sandbox Code Playgroud)

.Select()LINQ to Objects对象上的语句是否保证不会更改列表成员的顺序?假设没有添加明确的不同/分组/排序

另外,如果首先使用任意.Where()子句,是否仍保证保持相对顺序,或者有时使用非迭代过滤?


正如Fermin在上面评论的那样,这实际上是一个重复的问题.我没有选择正确的关键字来搜索stackoverflow

使用LINQ保留订单

c# linq-to-objects

16
推荐指数
1
解决办法
1662
查看次数

教学同事LINQ

我已经开始了一段教育我的同事的旅程(所有人都接受了我的使命,甚至是老板).每天我似乎找到一段代码,如果我的同事更多地了解框架,更好的知识框架(由DNR提供;))是我的教学过程的第二部分.第一部分是教我的同事关于LINQ,它能为它们做些什么以及它是如何编写的.

我最大的问题是LINQ教育的所有良好基本资源在哪里,如果find与Linq2Sql或所有其他类型的材料紧密耦合,那么一切都是如此.我也没有找到实际linq语法的教程(除了所有的规范).

(我希望以前没有问过这个问题,但如果有请求,那么我的搜索技巧就失败了;))

基础教程(免费):

基础教程(商业网站):

参考站点:

.net c# linq linq-to-objects

15
推荐指数
3
解决办法
1328
查看次数

当我尝试获取类型的计数时,为什么LINQ查询会抛出异常

public readonly IEnumerable<string> PeriodToSelect = new string[] { "MONTH" };  

var dataCollection = from p in somedata    
from h in p.somemoredate    
where h.Year > (DateTime.Now.Year - 2)    
where PeriodToSelect.Contains(h.TimePeriod)  
select new  
{  
    p.Currency, 
    h.Year.Month, h.Value                                                    
}; 
Run Code Online (Sandbox Code Playgroud)

有人可以告诉我为什么在下面的代码行中抛出异常?

int count = dataCollection.Count();  
Run Code Online (Sandbox Code Playgroud)

这是例外:

System.NullReferenceException: Object reference not set to an instance of an object.
   at System.Linq.Enumerable.<SelectManyIterator>d__31`3.MoveNext()
   at System.Linq.Enumerable.<SelectManyIterator>d__31`3.MoveNext()
   at System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext()
   at System.Collections.Generic.List`1..ctor(IEnumerable`1 collection)
   at System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)
   at ...
Run Code Online (Sandbox Code Playgroud)

c# linq linq-to-objects exception-handling

15
推荐指数
2
解决办法
4万
查看次数

创建Linq查询时出错

我有一个像这样的查询

struct MyStruct
{
  public string name;
  public double amount;
}

var a =
  from p in Products
  select new MyStruct
  {
    name = p.Name,
    amount = p.Amount
  };
Run Code Online (Sandbox Code Playgroud)

当我执行查询时,我得到以下异常:

System.NotSupportedException {"LINQ to Entities中仅支持无参数构造函数和初始值设定项."}

但是,如果我将MyStruct的类型更改为类,那么它将按预期工作.

为什么它适用于并且使用struct失败?

.net c# linq linq-to-objects entity-framework

14
推荐指数
1
解决办法
889
查看次数