亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

按名稱對列表項進行分組

按名稱對列表項進行分組

C#
慕尼黑8549860 2022-12-31 12:59:58
我有一個包含重復項目的列表。我需要按相同的順序對它們進行分組。我在 LINQ 中找到了很多基于某些鍵對列表項進行分組的解決方案。例如:-我有如下列表tbl1tbl1tbl2tbl3tbl1tbl4tbl2我需要像下面這樣分組tbl1tbl1tbl1 tbl1tbl2tbl2tbl3tbl4這能實現嗎。
查看完整描述

4 回答

?
MYYA

TA貢獻1868條經驗 獲得超4個贊

您不需要分組,您想要更改列表的順序。C# 使用該Sort()方法自然地內置了此功能。


根據您的問題,我假設您userList的是List<string>. 既然如此,直接使用代碼:


userList.Sort();

但是,假設您userList是 a List<SomeObject>,您可以通過以下方式使用 Linq 執行此操作:


假設你的對象是這樣的:


class MyObject

{

    public string Name;

    // Whatever other properties

}

你可以使用:


var userList = new List<MyObject>();

// Whatever extra code...

userList = userList.OrderBy(v => v.Name).ToList();

希望能解決問題!


查看完整回答
反對 回復 2022-12-31
?
慕勒3428872

TA貢獻1848條經驗 獲得超6個贊

你說你想對它們進行分組,但你給出的例子表明你需要對它們進行排序。


如果你想刪除重復的項目,你需要:


var groupedCustomerList = userList

    .GroupBy(u => u.GroupID)

    .ToList();

但是,如果您需要按照示例所示對它們進行排序,則需要編寫如下內容:


var groupedCustomerList = userList

    .OrderBy(u => u.GroupID)

    .ToList();

要么


var groupedCustomerList = userList.Sort();


查看完整回答
反對 回復 2022-12-31
?
阿晨1998

TA貢獻2037條經驗 獲得超6個贊

您可以直接使用 GroupBy() 方法。


List<string> elements = new List<string>() //lets consider them as strings

{

  "tbl1",

  "tbl1",

  "tbl2",

  "tbl3",

  "tbl1",

  "tbl4",

  "tbl2"

};

var groups = elements.OrderBy(x=>x).GroupBy(x => x);//group them according to their value

foreach(var group in groups)

{

  foreach (var el in group) Console.WriteLine(el);

}


查看完整回答
反對 回復 2022-12-31
?
吃雞游戲

TA貢獻1829條經驗 獲得超7個贊

Group您可以借助以下內容擴展s SelectMany:


   var groupedCustomerList = userList

     .GroupBy(u => u.GroupID)     // Grouping

     .SelectMany(group => group)  // Expand groups back (flatten)

     .ToList();

這是怎么回事:


initial:          {tbl1, tbl1, tbl2, tbl3, tbl1, tbl4, tbl2}

after GroupBy:    {Key = "1", {tbl1, tbl1, tbl1}},

                  {Key = "2", {tbl2, tbl2}},

                  {Key = "3", {tbl3}},

                  {Key = "4", {tbl4}},

after SelectMany: {tbl1, tbl1, tbl1, tbl2, tbl2, tbl3, tbl4}


查看完整回答
反對 回復 2022-12-31
  • 4 回答
  • 0 關注
  • 117 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號