Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在C asp.net中将列表中的相似项按相同顺序分组_C#_Asp.net_List_Group By - Fatal编程技术网

C# 在C asp.net中将列表中的相似项按相同顺序分组

C# 在C asp.net中将列表中的相似项按相同顺序分组,c#,asp.net,list,group-by,C#,Asp.net,List,Group By,我有一个重复项目的列表。我必须以相同的顺序显示相似的项目。我尝试了排序,但它通过按asc/des顺序排序来更改顺序 例如:- 我有一个如下的清单 tbl1_aaa tbl1_bbb chk2_ccc drp3_ddd tbl1_eee txt4_fff chk2_ggg 我需要将它分组,考虑到“u”之前的字符串,如下所示 tbl1_aaa tbl1_bbb tbl1_eee chk2_ccc chk2_ggg drp3_ddd txt4_fff 这可以实现吗您可以尝试在GroupBy的帮助下

我有一个重复项目的列表。我必须以相同的顺序显示相似的项目。我尝试了排序,但它通过按asc/des顺序排序来更改顺序

例如:-

我有一个如下的清单

tbl1_aaa
tbl1_bbb
chk2_ccc
drp3_ddd
tbl1_eee
txt4_fff
chk2_ggg
我需要将它分组,考虑到“u”之前的字符串,如下所示

tbl1_aaa
tbl1_bbb
tbl1_eee
chk2_ccc
chk2_ggg
drp3_ddd
txt4_fff
这可以实现吗

您可以尝试在GroupBy的帮助下分组,然后使用SelectMany展平组:

结果:


您可以将LINQ与SQL格式一起使用,如下所示:

  List<string> str = 
    new List<string> { "tbl1", "tbl1", "chk2", "drp3", "tbl1", "txt4", "chk2" };
    str = (from s in str 
           group s by s into ag 
           from g in ag orderby g descending select g).ToList();

Update

    List<string> str = 
new List<string> { "tbl1_aaa", "tbl1_bbb", "chk2_ccc", "drp3_ddd", "tbl1_eee", "txt4_fff", "chk2_ggg" };
                str = (from s in str
                       group s by s.Substring(0, s.IndexOf('_') + 1) into ag
                    from g in ag orderby g descending
                    select g).ToList();

我已经编辑了我的问题。没有两项是类似的。只有一部分匹配。我们可以只考虑项目的第一部分对其进行相应分组。它显示相同的结果。与我的原始版本相比没有变化list@Aswini:请检查您是否修改了GroupBy,或者只是复制并粘贴我的代码,然后查看我仍然获得与原始代码相同的lst。我在列表中的确切项目是格式为“tbl1_aaa technical”@Aswini:你能提供测试吗?那么这个精确测试的预期结果呢?这改变了项目顺序,我可以使用排序。但是我不想把这些东西按任何顺序分类。我只想把相似的按相同的顺序分组。
tbl1_aaa
tbl1_bbb
tbl1_eee
chk2_ccc
chk2_ggg
drp3_ddd
txt4_fff
  List<string> str = 
    new List<string> { "tbl1", "tbl1", "chk2", "drp3", "tbl1", "txt4", "chk2" };
    str = (from s in str 
           group s by s into ag 
           from g in ag orderby g descending select g).ToList();

Update

    List<string> str = 
new List<string> { "tbl1_aaa", "tbl1_bbb", "chk2_ccc", "drp3_ddd", "tbl1_eee", "txt4_fff", "chk2_ggg" };
                str = (from s in str
                       group s by s.Substring(0, s.IndexOf('_') + 1) into ag
                    from g in ag orderby g descending
                    select g).ToList();