[英]LINQ select top 1 grouped and ordered by array indices
我想創建一個 LINQ 表達式,它可以:
這是輸入數組:
var input = [
[
"5833d9df-a9bb-49a7-a113-d410801af72a",
"Dejan",
"2020-12-03",
"napraviti program za ovaku TODO listu",
"RADITI"
],
[
"5833d9df-a9bb-49a7-a113-d410801af72a",
"Dejan",
"2020-12-04",
"napraviti program za ovaku TODO listu",
"RADITI"
],
[
"a9130a6f-d157-4a6e-8b70-430793eddcd3",
"Branko",
"2020-12-04",
"Rekao sam mu da ode kod Voje pa cemo online da resimo sve",
"CEKAM ODGOVOR"
],
[
"a9130a6f-d157-4a6e-8b70-430793eddcd3",
"Branko",
"2020-12-03",
"Rekao sam mu da ode kod Voje pa cemo online da resimo sve",
"CEKAM ODGOVOR"
]
];
預期 output:
var output = [
[
"5833d9df-a9bb-49a7-a113-d410801af72a",
"Dejan",
"2020-12-04",
"napraviti program za ovaku TODO listu",
"RADITI"
],
[
"a9130a6f-d157-4a6e-8b70-430793eddcd3",
"Branko",
"2020-12-04",
"Rekao sam mu da ode kod Voje pa cemo online da resimo sve",
"CEKAM ODGOVOR"
]
];
這是我解決問題的嘗試(T-SQL):
SELECT A, B, C, D, E
FROM
(
SELECT A, B, C, D, E, ROW_NUMBER() OVER(PARTITION BY B ORDER BY C DESC) RN
FROM @TABLE
) A
WHERE A.RN = 1
我不知道 LINQ
使用GroupBy
並將其指向每個組的第二個條目。 然后,在每個組中,按降序排列第三個條目,並取第一個組條目。
var output =
input
.GroupBy(entry => entry[1])
.Select(g => g.OrderByDescending(entry => entry[2]).First());
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.