我会假设有一个简单的LINQ查询来执行此操作,我只是不确定如何.请参阅下面的代码段.
class Program
{
static void Main(string[] args)
{
List<Person> peopleList1 = new List<Person>();
peopleList1.Add(new Person() { ID = 1 });
peopleList1.Add(new Person() { ID = 2 });
peopleList1.Add(new Person() { ID = 3 });
List<Person> peopleList2 = new List<Person>();
peopleList2.Add(new Person() { ID = 1 });
peopleList2.Add(new Person() { ID = 2 });
peopleList2.Add(new Person() { ID = 3 });
peopleList2.Add(new Person() { ID = 4 });
peopleList2.Add(new Person() { ID = 5 });
}
}
class Person
{ …Run Code Online (Sandbox Code Playgroud) 有没有办法使用LINQ执行以下操作?
foreach (var c in collection)
{
c.PropertyToSet = value;
}
Run Code Online (Sandbox Code Playgroud)
为了澄清,我想迭代集合中的每个对象,然后更新每个对象的属性.
我的用例是我在博客文章中有一堆评论,我想在博客文章中迭代每个评论,并将博客帖子上的日期时间设置为+10小时.我可以在SQL中完成它,但我想将它保留在业务层中.
我有一个具有Nullable DateOfBirth属性的Person对象.有没有办法使用LINQ查询具有最早/最小DateOfBirth值的Person对象列表.
这是我开始的:
var firstBornDate = People.Min(p => p.DateOfBirth.GetValueOrDefault(DateTime.MaxValue));
Run Code Online (Sandbox Code Playgroud)
Null DateOfBirth值设置为DateTime.MaxValue,以便将它们排除在Min考虑范围之外(假设至少有一个具有指定的DOB).
但对我来说,所有这一切都是将firstBornDate设置为DateTime值.我想得到的是与之匹配的Person对象.我是否需要编写第二个查询:
var firstBorn = People.Single(p=> (p.DateOfBirth ?? DateTime.MaxValue) == firstBornDate);
Run Code Online (Sandbox Code Playgroud)
或者有更简洁的方法吗?
我在使用LINQ和Lambda编写的查询时遇到问题.到目前为止,我的代码中出现了很多错误:
int id = 1;
var query = database.Posts.Join(database.Post_Metas,
post => database.Posts.Where(x => x.ID == id),
meta => database.Post_Metas.Where(x => x.Post_ID == id),
(post, meta) => new { Post = post, Meta = meta });
Run Code Online (Sandbox Code Playgroud)
我是新手使用LINQ,所以我不确定这个查询是否正确.
我相信这将是一个相对简单的.
我有一个LINQ查询,我想按最近创建的日期排序.
看到:
var itemList = from t in ctn.Items
where !t.Items && t.DeliverySelection
orderby t.Delivery.SubmissionDate descending
select t;
Run Code Online (Sandbox Code Playgroud)
我也尝试过:
var itemList = (from t in ctn.Items
where !t.Items && t.DeliverySelection
select t).OrderByDescending();
Run Code Online (Sandbox Code Playgroud)
但这会给出一个错误:
方法'OrderByDescending'的重载不带0参数
从我所读到的,我很确定我做的第一种方式应该有效.我已经尝试将降序改为升序只是为了看它是否做了什么,但它保持不变.
如果有人能够查看查询并查看我是否做错了什么,我将不胜感激.谢谢 :)
在集合上使用Linq,以下代码行之间有什么区别?
if(!coll.Any(i => i.Value))
Run Code Online (Sandbox Code Playgroud)
和
if(!coll.Exists(i => i.Value))
Run Code Online (Sandbox Code Playgroud)
更新1
当我反汇编.Exists它看起来没有代码.
更新2
任何人都知道为什么这个没有代码?
我在SQL中有一个程序,我试图变成Linq:
SELECT O.Id, O.Name as Organization
FROM Organizations O
JOIN OrganizationsHierarchy OH ON O.Id=OH.OrganizationsId
where OH.Hierarchy like '%/12/%'
Run Code Online (Sandbox Code Playgroud)
我最关心的是:
where OH.Hierarchy like '%/12/%'
Run Code Online (Sandbox Code Playgroud)
我有一个存储层的列,例如/ 1/3/12,所以我只使用%/ 12 /%来搜索它.
我的问题是,Linq或.NET相当于使用百分号?
有没有什么方法可以将项目索引作为每个拆分的分隔符List<SomeObject>分成几个单独的列表SomeObject?
让我举例说明:
我有一个List<SomeObject>,我需要一个List<List<SomeObject>>或List<SomeObject>[],所以这些结果列表中的每一个将包含一组3个原始列表项(顺序).
例如.:
原始清单: [a, g, e, w, p, s, q, f, x, y, i, m, c]
结果列表: [a, g, e], [w, p, s], [q, f, x], [y, i, m], [c]
我还需要将结果列表大小作为此函数的参数.
我在有序数组上使用LINQ to Objects指令.我不应该做哪些操作来确保数组的顺序没有改变?
linq ×10
c# ×8
.net ×4
.net-3.5 ×2
arrays ×1
collections ×1
foreach ×1
ienumerable ×1
iqueryable ×1
join ×1
lambda ×1
sorting ×1
sql-like ×1
sql-order-by ×1
t-sql ×1