相关疑难解决方法(0)

OrderBy在Lambda表达式中降序?

我知道在正常的Linq语法中,orderby xxx descending很容易,但是我如何在Lambda表达式中做到这一点?

linq lambda

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

使用LINQ进行多次排序

我从一个基本类开始,我想使用LINQ在List中操作,如下所示:

public class FooBar   
{  
    public virtual int Id { get; set; }  
    public virtual string Foo{ get; set; }  
    public virtual string Bar{ get; set; }
}
Run Code Online (Sandbox Code Playgroud)

这是我最终发现使用非lambda LINQ的东西来解决我的问题.

// code somewhere else that works and gets the desired results  
var foobarList = GetFooBarList();  // Abstracted out - returns List<Foobar>  

// Interesting piece of code that I want to examine
var resultSet = from foobars in foobarList  
                orderby foobars.Foo, foobars.Bar  
                select foobars;

// Iterate and do something interesting  
foreach …
Run Code Online (Sandbox Code Playgroud)

c# linq lambda

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

如何在linq中使用orderby和2个字段?

假设我在数据库表中有这些值

id = 1
StartDate = 1/3/2010
EndDate =  1/3/2010

id = 2
StartDate = 1/3/2010
EndDate = 1/9/2010
Run Code Online (Sandbox Code Playgroud)

现在我已经为我的linq订购了这个订单

var hold = MyList.OrderBy(x => x.StartDate).ToList();
Run Code Online (Sandbox Code Playgroud)

我想订购它,但也使用结束日期.

就像我要这样的顺序一样

id 2
id 1
Run Code Online (Sandbox Code Playgroud)

所以endDates这是更好的先行.我不确定是否需要更改它以使用某些比较功能或其他东西.

c# linq

129
推荐指数
5
解决办法
12万
查看次数

LINQ order by null column其中order是升序,null应该是last

我正在尝试按价格对产品列表进行排序.

结果集需要按列从低到高的价格列出产品LowestPrice.但是,此列可以为空.

我可以按降序对列表进行排序,如下所示:

var products = from p in _context.Products
   where p.ProductTypeId == 1
   orderby p.LowestPrice.HasValue descending
   orderby p.LowestPrice descending
   select p;

// returns:    102, 101, 100, null, null
Run Code Online (Sandbox Code Playgroud)

但是我无法弄清楚如何按升序排序.

// i'd like: 100, 101, 102, null, null
Run Code Online (Sandbox Code Playgroud)

c# linq sorting

123
推荐指数
7
解决办法
8万
查看次数

Linq按布尔顺序排序

我有一个linq查询,我想通过f.bar订购,这是一个字符串,但我也想通过f.foo订购它,这是一个布尔字段,首先.喜欢下面的查询.

(from f in foo
orderby f.foo, f.bar
select f)
Run Code Online (Sandbox Code Playgroud)

虽然这个编译它没有按预期工作.它只是通过f.bar命令忽略布尔字段.

我知道,我是愚蠢的,但是我需要做些什么才能得到这种行为?

谢谢

c# linq

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

在LINQ中升序/降序 - 可以通过参数更改顺序吗?

我有一个方法,给出参数"bool sortAscending".现在我想使用LINQ根据此参数创建排序列表.我得到了这个:

var ascendingQuery = from data in dataList
                      orderby data.Property ascending
                      select data;

var descendingQuery = from data in dataList
                      orderby data.Property descending
                      select data;
Run Code Online (Sandbox Code Playgroud)

如您所见,两个查询仅在"升序"中有所不同."降".我想合并两个查询,但我不知道如何.有人有答案吗?

c# linq

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

如何在C#中对List进行排序

我有一节课:

public class MyObject
{
public string Name;
public int Age;
}
Run Code Online (Sandbox Code Playgroud)

我有一个Myobject对象列表:

Name Age
ABC 12
BBC 14
ABC 11
Run Code Online (Sandbox Code Playgroud)

如何使用条件对此列表进行排序:首先排序名称,然后排序年龄.使用此列表,排序后的结果:

Name Age
ABC 11
ABC 12
BBC 14
Run Code Online (Sandbox Code Playgroud)

.net c#

13
推荐指数
2
解决办法
975
查看次数

使用辅助排序对linq查询进行排序

可能重复:
LINQ中有多个"order by"

我有一个订单清单,我需要在订单日期订购,然后按订单价格进行二次排序.因为我尝试过order.OrderBy(o => o.Date).OrderBy(o => o.Price),我不确定这是怎么做到的,但它不起作用.任何帮助深表感谢.谢谢

c# linq

11
推荐指数
1
解决办法
6146
查看次数

在Linq中执行Parent然后Child排序

目的是按父项对列表进行排序,然后是子项(只有一个子项).

Example Set:
ID  ParentId Type   Unit
1   NULL    Energy  kJ
2   1       Cal
3   NULL    Protein g
4   NULL    Fat, total  g
5   4       Saturated   g
6   NULL    Carbohydrate    g
7   6       Sugars  g
8   NULL    Dietary fibre   g
10  NULL    Sodium  mg
11  NULL    Potassium   mg
Run Code Online (Sandbox Code Playgroud)

因此,例如,如果我按类型(字母顺序)排序,它就会出现

  1. 糖类
  2. 糖(父母= 1.)
  3. 膳食纤维
  4. 能源
  5. Cal(父母= 4.)
  6. 胖,总
  7. 饱和(父= 6)

.net c# linq linq-to-sql

8
推荐指数
1
解决办法
3802
查看次数

简单的Linq查询对同一个表有重复的连接?

(来自Julia Lerman的新实体框架书中的一个例子.)我有一个包含两个表的数据库,联系人和地址.Contact表有一个ContactID(int),以及名字,姓氏等.地址表有一个ContactID,以及city,state,zip等.

这是一个简单的LINQ查询:

var addressGraphQuery = from a in context.Addresses.Include("Contact")
                        orderby a.Contact.LastName, a.Contact.FirstName
                        select a;
Run Code Online (Sandbox Code Playgroud)

从SQL事件探查器,我看到以下内容:

SELECT 
    [Extent1].[addressID] AS [addressID], 
    [Extent1].[City] AS [City], 
    [Extent1].[StateProvince] AS [StateProvince], 
    -- etc
    [Extent3].[ContactID] AS [ContactID1], 
    [Extent3].[FirstName] AS [FirstName], 
    [Extent3].[LastName] AS [LastName], 
    -- etc
FROM   [dbo].[Address] AS [Extent1]
INNER JOIN [dbo].[Contact] AS [Extent2] ON [Extent1].[ContactID] = [Extent2].[ContactID]
LEFT OUTER JOIN [dbo].[Contact] AS [Extent3] ON [Extent1].[ContactID] = [Extent3].[ContactID]
ORDER BY [Extent2].[LastName] ASC, [Extent3].[FirstName] ASC
Run Code Online (Sandbox Code Playgroud)

它连接两次联系表!为什么?有没有一种简单的方法来防止这种情况?


神秘感加深了.当我删除orderby时,连接消失.当我设置时,连接不会消失context.ContextOptions.LazyLoadingEnabled = false.

这里也有一个类似的问题:

实体框架4中有太多左外连接?

我会看看是否有更高的功率我可以问...

linq entity-framework join

7
推荐指数
2
解决办法
3715
查看次数

标签 统计

linq ×9

c# ×8

.net ×2

lambda ×2

entity-framework ×1

join ×1

linq-to-sql ×1

sorting ×1