मेरे पास उन वस्तुओं की एक सूची है जिनमें श्रेणी है।

enum class ItemCategory {
    ACCOUNT,
    CARD,
    OTHER,
    INVESTMENTS,
    LOAN
}

मैं श्रेणी के अनुसार वस्तुओं को वर्णानुक्रम में क्रमबद्ध करता हूं:

items = itemList.sortedBy { it.category.name }.groupBy { it.category }

अब आउटपुट: खाता, कार्ड, निवेश, ऋण, अन्य, भुगतान

अपेक्षित: खाता, कार्ड, निवेश, ऋण, भुगतान, अन्य

0
Wafi_ck 28 सितंबर 2021, 11:15
6
आपने category.name द्वारा वर्णानुक्रम में क्रमबद्ध किया है जो Other के रूप में सही आउटपुट दे रहा है Payment से पहले वर्णानुक्रम में है O वर्णमाला में P से पहले होने के कारण।
 – 
ConnorTJ
28 सितंबर 2021, 11:18
1
क्या आप वास्तव में वर्णानुक्रम में OTHER से पहले भुगतान की अपेक्षा करते हैं? यदि आप चाहते हैं कि OTHER हमेशा अंतिम रहे, तो एक कस्टम आदेश लागू करें या भुगतान के अलावा किसी अन्य शब्द का उपयोग करें।
 – 
deHaar
28 सितंबर 2021, 11:19

1 उत्तर

सबसे बढ़िया उत्तर

Output Now का: ACCOUNT, CARD, INVESTMENTS, LOAN, OTHER, PAYMENT वर्णानुक्रम में सही है।

यदि आप REQUIRE का आउटपुट: ACCOUNT, CARD, INVESTMENTS, LOAN, PAYMENT, OTHER

आप Enum मानों को संख्यात्मक मान इस प्रकार निर्दिष्ट कर सकते हैं:

public enum ItemCategory 
{
    ACCOUNT = 0, 
    CARD = 1, 
    INVESTMENTS = 2, 
    LOAN = 3, 
    PAYMENT = 4,
    OTHER = 5
}

फिर Sorting/Ordering करते समय आप यह कर सकते हैं:

var itemList = new List<ItemCategory>
{
    ItemCategory.CARD,
    ItemCategory.ACCOUNT,
    ItemCategory.OTHER,
    ItemCategory.INVESTMENTS,
    ItemCategory.LOAN,
    ItemCategory.PAYMENT
};
        
var sortedList = itemList.OrderBy(i => (int)i).ToList();

फिर आप सूची के माध्यम से पुनरावृति कर सकते हैं और यह निम्न क्रम में होगा:

ACCOUNT
CARD
INVESTMENTS
LOAN
PAYMENT
OTHER
2
ConnorTJ 28 सितंबर 2021, 11:30
हालांकि, यह कोटलिन नहीं है?
 – 
Joffrey
28 सितंबर 2021, 12:01
ऐसा नहीं है, यह सी # में है, लेकिन आधार वही है, लेखक ने भी जवाब स्वीकार कर लिया क्योंकि यह उनके लिए काम कर रहा है
 – 
ConnorTJ
28 सितंबर 2021, 12:04