C# 有没有办法把这两个LINQ语句结合起来?
我有以下资料:C# 有没有办法把这两个LINQ语句结合起来?,c#,.net,linq,C#,.net,Linq,我有以下资料: var data = _cityRepository.GetAll( u => u.PartitionKey == pk & u.RowKey.CompareTo(lowerBound) >= 0 & u.RowKey.CompareTo(upperBound) < 0); details = from d in data select new City.Grid { Part
var data = _cityRepository.GetAll(
u => u.PartitionKey == pk &
u.RowKey.CompareTo(lowerBound) >= 0 &
u.RowKey.CompareTo(upperBound) < 0);
details =
from d in data
select new City.Grid
{
PartitionKey = d.PartitionKey,
RowKey = d.RowKey,
ShortTitle = d.ShortTitle,
Created = d.Created,
Modified = d.Modified,
ModifiedBy = d.ModifiedBy
};
detailsList = details
.OrderBy(item => item.Modified)
.Select((t, index) => new City.Grid()
{
PartitionKey = t.PartitionKey,
RowKey = t.RowKey,
Row = index + 1,
ShortTitle = t.ShortTitle,
Created = t.Created,
Modified = t.Modified,
ModifiedBy = t.ModifiedBy
})
.ToList();
有没有一种方法可以将这些语句合并成一个语句,或者如果不可能,我可以将最后两个语句合并成一个语句?当然-这很难看,但这有三个:
var query = _cityRepository.GetAll(
u => u.PartitionKey == pk &
u.RowKey.CompareTo(lowerBound) >= 0 &
u.RowKey.CompareTo(upperBound) < 0)
.Select(d => new City.Grid
{
PartitionKey = d.PartitionKey,
RowKey = d.RowKey,
ShortTitle = d.ShortTitle,
Created = d.Created,
Modified = d.Modified,
ModifiedBy = d.ModifiedBy
}
.OrderBy(item => item.Modified)
.Select((t, index) => new City.Grid()
{
PartitionKey = t.PartitionKey,
RowKey = t.RowKey,
Row = index + 1,
ShortTitle = t.ShortTitle,
Created = t.Created,
Modified = t.Modified,
ModifiedBy = t.ModifiedBy
})
.ToList();
这里有三种说法,而不是两种。考虑到它们的简单结构,你可以将这三者结合在一起,只需简单的搜索和替换。谢谢Jon。后者是我一直在寻找的,但我不知道如何把它放在一起。我将尝试一下。jon,在查询语法中-
into
在这里有帮助吗?(我认为应该将其转换为查询语法…[所有3个查询])@Royi Namir:不。查询表达式没有为提供投影索引的select重载的语法。@JonSkeet那么你是说第三个查询是有问题的,因为它的索引投影?(哪些在查询syntx中没有均衡)?
var query = _cityRepository.GetAll(
u => u.PartitionKey == pk &
u.RowKey.CompareTo(lowerBound) >= 0 &
u.RowKey.CompareTo(upperBound) < 0)
.Select(d => new City.Grid
{
PartitionKey = d.PartitionKey,
RowKey = d.RowKey,
ShortTitle = d.ShortTitle,
Created = d.Created,
Modified = d.Modified,
ModifiedBy = d.ModifiedBy
}
.OrderBy(item => item.Modified)
.Select((t, index) => new City.Grid()
{
PartitionKey = t.PartitionKey,
RowKey = t.RowKey,
Row = index + 1,
ShortTitle = t.ShortTitle,
Created = t.Created,
Modified = t.Modified,
ModifiedBy = t.ModifiedBy
})
.ToList();
var query = _cityRepository.GetAll(
u => u.PartitionKey == pk &
u.RowKey.CompareTo(lowerBound) >= 0 &
u.RowKey.CompareTo(upperBound) < 0)
.OrderBy(item => item.Modified)
.Select((t, index) => new City.Grid()
{
PartitionKey = t.PartitionKey,
RowKey = t.RowKey,
Row = index + 1,
ShortTitle = t.ShortTitle,
Created = t.Created,
Modified = t.Modified,
ModifiedBy = t.ModifiedBy
})
.ToList();