相关疑难解决方法(0)

在LINQ分组

我们假设我们有一个类似的课程

class Person { 
    internal int PersonID; 
    internal string car  ; 
}
Run Code Online (Sandbox Code Playgroud)

现在我有一个这个类的列表: List<Person> persons;

现在,此列表可以具有多个具有相同PersonID的实例,例如:

persons[0] = new Person { PersonID = 1, car = "Ferrari" }; 
persons[1] = new Person { PersonID = 1, car = "BMW"     }; 
persons[2] = new Person { PersonID = 2, car = "Audi"    }; 
Run Code Online (Sandbox Code Playgroud)

有没有办法可以分组personID并获得他拥有的所有汽车的清单?

例如,预期结果将是

class Result { 
   int PersonID;
   List<string> cars; 
}
Run Code Online (Sandbox Code Playgroud)

分组后,我会得到:

results[0].PersonID = 1; 
List<string> cars = results[0].cars; 

result[1].PersonID = 2; 
List<string> cars = result[1].cars;
Run Code Online (Sandbox Code Playgroud)

从我到目前为止所做的: …

c# linq group-by

1004
推荐指数
8
解决办法
122万
查看次数

按多列分组

如何在LINQ中执行GroupBy多列

SQL中与此类似的东西:

SELECT * FROM <TableName> GROUP BY <Column1>,<Column2>
Run Code Online (Sandbox Code Playgroud)

如何将其转换为LINQ:

QuantityBreakdown
(
    MaterialID int,
    ProductID int,
    Quantity float
)

INSERT INTO @QuantityBreakdown (MaterialID, ProductID, Quantity)
SELECT MaterialID, ProductID, SUM(Quantity)
FROM @Transactions
GROUP BY MaterialID, ProductID
Run Code Online (Sandbox Code Playgroud)

.net c# linq group-by aggregate

919
推荐指数
8
解决办法
53万
查看次数

是否可以使用LINQ旋转数据?

我是LINQ的新手,但我想知道是否可以使用LINQ从以下布局转移数据:

CustID | OrderDate | Qty
1      | 1/1/2008  | 100
2      | 1/2/2008  | 200
1      | 2/2/2008  | 350
2      | 2/28/2008 | 221
1      | 3/12/2008 | 250
2      | 3/15/2008 | 2150
Run Code Online (Sandbox Code Playgroud)

进入这样的事情:

CustID  | Jan- 2008 | Feb- 2008 | Mar - 2008 |
1       | 100       | 350       |  250
2       | 200       | 221       | 2150
Run Code Online (Sandbox Code Playgroud)

linq pivot-table

167
推荐指数
3
解决办法
7万
查看次数

使用LINQ旋转数据

我试图看看我是否可以使用LINQ来解决我遇到的问题.我有一个包含Enum(TypeCode)和User对象的项目集合,我需要将其展平以显示在网格中.这很难解释,所以让我举一个简单的例子.

集合有这样的项目:

TypeCode | User 
---------------
1        | Don Smith  
1        | Mike Jones  
1        | James Ray  
2        | Tom Rizzo  
2        | Alex Homes  
3        | Andy Bates  
Run Code Online (Sandbox Code Playgroud)

我需要输出为:

1          | 2          | 3  
Don Smith  | Tom Rizzo  | Andy Bates  
Mike Jones | Alex Homes |  
James Ray  |            |  
Run Code Online (Sandbox Code Playgroud)

感谢任何可以帮助我的人!我尝试使用foreach这样做,但是我不能这样做,因为我要在foreach中将新项目插入到集合中,从而导致错误.

c# linq pivot-table

26
推荐指数
3
解决办法
4万
查看次数

标签 统计

linq ×4

c# ×3

group-by ×2

pivot-table ×2

.net ×1

aggregate ×1