Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 有没有办法把这两个LINQ语句结合起来?_C#_.net_Linq - Fatal编程技术网

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();