.Distinct()按順序回傳串列的不同值,即1,2,3,1變為1,2,3.
我想獲得最后一個不同的值,但總是回傳最后一個值而不是第一個值 - 我該怎么做?
var input = new List<string> { "AAA", "BBB", "CCC", "AAA" };
//input = input
// .Distinct()
// .ToList();
// Returns: "AAA", "BBB", "CCC"
//input = input
// .GroupBy(c => c)
// .Select(c => c.OrderByDescending(x => x).Last())
// .ToList();
// Returns: "AAA", "BBB", "CCC"
// TEST
var output = new List<string> { "BBB", "CCC", "AAA" };
if (input.SequenceEqual(output))
{
Console.WriteLine("Success!");
}
else
{
Console.WriteLine("Fail!");
}
uj5u.com熱心網友回復:
正如 Lasse v. Karlsen 所指出的那樣,反轉運行不同的字串并再次反轉字串有效。
input.Reverse();
input = input
.Distinct()
.Reverse()
.ToList();
請注意使用了 2 個不同.Revers()的呼叫:List<T>.Reverse()和Enumerable.Reverse(source)(Linq)。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/434895.html
