簡體   English   中英

如何在python和C#中通過第二個元組元素對列表進行排序

[英]How to sort a list by the 2nd tuple element in python and C#

我有一個元組列表,其中每個元組由兩個整數組成,我想按第二個整數排序。 在查看python幫助后,我得到了這個:

sorted(myList, key=lambda x: x[1])

這很棒。 我的問題是,是否有一種同樣簡潔的方式在C#(我必須使用的語言)中這樣做? 我知道明顯的答案涉及創建類和為整個比較步驟指定匿名委托,但也許還有一個以linq為導向的方式。 在此先感謝您的任何建議。

在python中執行此操作的另一種方法是這樣

from operator import itemgetter
sorted(myList, key=itemgetter(1))

假設元組列表的類型為IEnumerable<Tuple<int, int>> (使用.NET 4.0中的Tuple<..>類表示的元組序列),您可以使用LINQ擴展方法編寫以下內容:

var result = myList.OrderBy(k => k.Item2);

在代碼中, k.Item2返回元組的第二個組件 - 在C#中,這是一個屬性(因為通過索引訪問項目通常不是類型安全的)。 否則,我認為代碼非常簡潔(也感謝lambda函數表示法)。

使用LINQ查詢語法,你可以像這樣編寫它(雖然第一個版本是恕我直言,更具可讀性,絕對更簡潔):

var result = from k in myList orderby k.Item2 select k;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM