C# 如何在System.Collections.Generic.List`1[CardDistro.Models.Transaction]上循环
在这个问题上,我无法从谷歌搜索中得到明确的方向。我有一个名为C# 如何在System.Collections.Generic.List`1[CardDistro.Models.Transaction]上循环,c#,linq,C#,Linq,在这个问题上,我无法从谷歌搜索中得到明确的方向。我有一个名为transaction的表,我想根据BatchID对外键进行分组,并根据降序进行排序 表格定义 [TTransactionID] INT IDENTITY (1, 1) NOT NULL, [BatchID] INT NULL, [CardID] INT NULL, [UserID] INT
transaction
的表,我想根据BatchID
对外键进行分组,并根据降序进行排序
表格定义
[TTransactionID] INT IDENTITY (1, 1) NOT NULL,
[BatchID] INT NULL,
[CardID] INT NULL,
[UserID] INT NULL,
[TransactionDateTime] DATETIME NOT NULL,
[TransactionStatus] VARCHAR (11) NOT NULL,
CONSTRAINT [PK_Transactions] PRIMARY KEY CLUSTERED ([TTransactionID] ASC),
CONSTRAINT [FK_Transactions_Cards] FOREIGN KEY ([CardID]) REFERENCES [dbo].[Cards] ([CardID]),
CONSTRAINT [FK_Transactions_Users] FOREIGN KEY ([UserID]) REFERENCES [dbo].[Users] ([UserID]) NOT FOR REPLICATION
这是我第五次尝试的代码
当我运行上面的代码时。我在浏览器上收到以下消息。我被困在这里,这之后我不知道该怎么办
System.Collections.Generic.List`1[SECardDistribution.Models.Transaction]
请告知
谢谢因为要在LINQ查询中对结果进行分组,所以需要运行两个循环—一个用于组,另一个用于组中的数据
var TransactionList = db.Transactions
.GroupBy(x => new { x.BatchID })
.Select(x => x.ToList()).ToList();
foreach (var group in TransactionList)
{
foreach(var item in group)
{
// DO YOUR THINGS HERE...
}
}
实际上,您可以使用SelectMany
var transactionList = db.Transactions.GroupBy(x => new { x.BatchID }).SelectMany(x => x).ToList();
请注意,TransactionList按BatchId升序排序,然后按CardId降序排序
var TransactionList = context.Trx
.GroupBy(t => t.BatchId) //group by BatchId
.OrderBy(t => t.Key) //order by BatchId
.Select
(g =>
//Create a new "Batch Group" anonymously where each batch contains the associated transactions
new
{
BatchId = g.Key,
BatchTransactions = g.Select(trx => new { Card = trx.Card, User = trx.User }).OrderByDescending(batchTrx => batchTrx.Card.CardId), //order by CardId
}
);
要在排序列表中循环,可以使用嵌套的foreach循环,如下所示:
//Loop through the batch group in the sorted list
foreach(var batchGroup in TransactionList)
{
foreach(var batchTrx in batchGroup.BatchTransactions)
{
//You may access the properties of batchTrx like a normal object graph, example batchTrx.Card.CardId
}
}
foreach(TransactionList中的var组){foreach(group中的var项){..
foreach(TransactionList中的var项。SelectMany(g=>g)){..
var TransactionList = context.Trx
.GroupBy(t => t.BatchId) //group by BatchId
.OrderBy(t => t.Key) //order by BatchId
.Select
(g =>
//Create a new "Batch Group" anonymously where each batch contains the associated transactions
new
{
BatchId = g.Key,
BatchTransactions = g.Select(trx => new { Card = trx.Card, User = trx.User }).OrderByDescending(batchTrx => batchTrx.Card.CardId), //order by CardId
}
);
//Loop through the batch group in the sorted list
foreach(var batchGroup in TransactionList)
{
foreach(var batchTrx in batchGroup.BatchTransactions)
{
//You may access the properties of batchTrx like a normal object graph, example batchTrx.Card.CardId
}
}