我有一个List<int>和一个List<customObject>.customObject类具有ID属性.如何获取List<customObject>仅包含List<int>使用LINQ中ID属性的对象?
编辑:我接受了Konrads的回答,因为它更容易/更直观地阅读.
是否有更好的方法来获取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) 我想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}
我有一个简单的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) 我一直在阅读关于LINQ to Objects的内容,现在我的同事希望我把它呈现给他们.
现在,我对运算符和语法选择有了一个很好的理解,但我听说你可以通过使用LINQ 避免重度嵌套循环.我无法想出一套好的"之前和之后"代码清单来证明这一点.
我在Magennis的书中找到了使用和不使用LINQ进行排序和分组的一个很好的例子,他还有一个编写xml的例子.但那些嵌套循环呢?这是否是一个现实的主张,因为我们通常需要一个foreach或两个循环来迭代查询结果?
如果有人能向我解释这个想法(理想情况下有具体的例子),我将非常感激.
我很难过.我需要帮助.我有一个带有重复患者地址数据的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) 我有一个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
我已经开始了一段教育我的同事的旅程(所有人都接受了我的使命,甚至是老板).每天我似乎找到一段代码,如果我的同事更多地了解框架,更好的知识框架(由DNR提供;))是我的教学过程的第二部分.第一部分是教我的同事关于LINQ,它能为它们做些什么以及它是如何编写的.
我最大的问题是LINQ教育的所有良好基本资源在哪里,如果find与Linq2Sql或所有其他类型的材料紧密耦合,那么一切都是如此.我也没有找到实际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) 我有一个像这样的查询
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失败?