相关疑难解决方法(0)

是否可以使用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中使用数据透视表

我有以下动态列表

Crew   NameSurname  Period  Result
ABC    John DOE     Q1      54,09
ABC    John DOE     Q2      59,57
ABC    John DOE     Q3      62,11
Run Code Online (Sandbox Code Playgroud)

如何在linq中获得此结果.

Crew   NameSurname  Q1      Q2      Q3
ABC    John DOE     47,51   47,51   51,46
Run Code Online (Sandbox Code Playgroud)

我试过这种方式,但我无法得到结果

List.GroupBy(c => c.PersonnelID)
     .Select(g => new
     {
         PersonnelID = g.Key,
         Period1 = g.Where(c => c.Period == 1).Sum(c => c.Result),
         Period2 = g.Where(c => c.Period == 2).Sum(c => c.Result),
         Period3 = g.Where(c => c.Period == 3).Sum(c => c.Result)
     });
Run Code Online (Sandbox Code Playgroud)

c# linq pivot list

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

透过Linq

我正在使用LINQ-to-Entities,并希望执行一个支点.

例如,我有这个表:

| data1 | data2 |
+-------+-------+
|   1   |   A   |
|   1   |   B   |
|   2   |   P   |
|   2   |   Q   |
|   2   |   R   |
+---------------+
Run Code Online (Sandbox Code Playgroud)

我想将其转换为以下结果:

| data1 | first | second | third |
+-------+-------+--------+-------+
|   1   |   A   |   B    | NULL  |
|   2   |   P   |   Q    |   R   |
+--------------------------------+
Run Code Online (Sandbox Code Playgroud)

我想在LINQ中执行此操作,而无需进行客户端处理.

我看过这些SO帖子,但是他们并没有完全解决上述情况(据我所知).



注意 我曾尝试以下,但它抱怨说,我不能在一个无序的集合使用跳过(),我没有看到一个办法让该集团的崩溃"数据2"信息进行排序.

from item in MyTable
group item by item.data1 into g …
Run Code Online (Sandbox Code Playgroud)

linq linq-to-entities pivot pivot-table sql-server-2008

7
推荐指数
1
解决办法
1196
查看次数

LINQ查询对象列表以获取基于多个字段的分布

我有一个MyBugList使用以下类创建的错误列表

internal class BugDetails
{
    public int Id { get; set; }
    public string State { get; set; }
    public string Severity { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我想基于State和分组这些错误Severity.我使用以下代码来实现它.

var BugListGroup = (from bug in MyBugList
                             group bug by new
                             {
                                 bug.State,
                                 bug.Severity
                             } into grp
                             select new
                             {
                                 BugState = grp.Key.State,
                                 BugSeverity = grp.Key.Severity,
                                 BugCount = grp.Count()
                             }).OrderBy(x=> x.BugState).ToList();
Run Code Online (Sandbox Code Playgroud)

这个linq查询给出了如下输出

Closed      Critical    40
Active      Critical    167
Closed      Medium      819
Closed      Low         323
Resolved    Medium …
Run Code Online (Sandbox Code Playgroud)

c# linq

5
推荐指数
1
解决办法
349
查看次数

尝试使用linq来转移数据

我有以下类结构:

 public class TaskLog
 {
    public DateTime LogDate { get; set; }
    public string Robot { get; set; }
    public string Task { get; set; }
    public Enums.ProbeDataState State { get; set; }

    public TaskLog()
    {
    }
}
Run Code Online (Sandbox Code Playgroud)

我创建了一个通用列表如下:

List<TaskLog> Logs;
Run Code Online (Sandbox Code Playgroud)

我的输出:

Robot   Date                    State
---------------------------------------------
aaa     8/5/2013 12:00:00 AM    Task:1=fileDeltaFailed
aaa     8/5/2013 12:00:00 AM    Task:2=fileDeltaFailed
aaa     8/5/2013 12:00:00 AM    Task:4=fileDeltaFailed
bbb     8/5/2013 12:00:00 AM    Task:1=fileDeltaFailed
bbb     8/5/2013 12:00:00 AM    Task:2=fileDeltaFailed
bbb     8/5/2013 12:00:00 AM    Task:4=fileDeltaFailed
Run Code Online (Sandbox Code Playgroud)

但是,我想将任务分组并说明如下:

                                Tasks
Robot   Date …
Run Code Online (Sandbox Code Playgroud)

c# linq custom-lists

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

如何在 C# 中透视列表

我有一个具有以下结构的列表,

TimeStamp          Name          Value
---------------------------------------     
01/May/2018        Prop1          5
07/May/2018        Prop1          9
01/May/2018        Prop2          8
07/May/2018        Prop2          11
01/May/2018        Prop3          18
07/May/2018        Prop3          7
.....................................................
......................................................
  07/May/2018        Prop(N)      (N)Value
Run Code Online (Sandbox Code Playgroud)

我正在尝试将其旋转/转换为以下结构,

TimeStamp         Prop1      Prop2      Prop3  ....  PropN                         Value
---------------------------------------------------------------------------------------------
01/May/2018        5           8          18           (N)th Value             31+(N)th Value  
07/May/2018        9           11          7             (N)th Value             27+(N)th Value  
Run Code Online (Sandbox Code Playgroud)

编辑: 实际上,该列表非常大,可以有 100 个名称,并且在将其加载到内存中之前不会知道这些值。因此,不可能检查@TheGeneral 提到的名称,但如果我们的值集有限并且我们事先知道它们,它就可以工作。

我尝试使用 grouping 来执行此操作,但这可能不是方法。

var pivotList= customersList.GroupBy(cust => new { cust.Name, cust.Timestamp, cust.Value }).Select(x => new  {
                                TimeStamp = x.Key.Timestamp,
                                Circuit = x.Key.Name, …
Run Code Online (Sandbox Code Playgroud)

.net c# linq pivot

3
推荐指数
1
解决办法
5124
查看次数