小编Pra*_*eep的帖子

LINQ如何在没有匿名类型的情况下由多个字段区分

我有一个名为CLASS的表和Fields

    **{BATCH, DEGREE, DEPT, SEM, SECTION, GROUP }** 
Run Code Online (Sandbox Code Playgroud)

我有以下记录

记录1:{2009,BE,CSE,3Sem,ASec,1Group}

Record2:{2009,BE,CSE,3Sem,ASec,2Group}

Record3:{2009,BE,ECE,4Sem,ASec,1Group}

Record4:{2009,BE,ECE,4Sem,ASec,2Group}

我需要选择不同的记录忽略GROUP并仅考虑以下内容

{批次,学位,部门,SEM,部分}

所以它应该返回以下2个不同的记录

                  Record1: **{ 2009 , B.E , CSE , 3Sem , ASec , 1Group }** 
Run Code Online (Sandbox Code Playgroud)

DistinctRecord:1 ------------------------(OR)**

                  Record2: **{ 2009 , B.E , CSE , 3Sem , ASec , 2Group }**
Run Code Online (Sandbox Code Playgroud)

----- (AND)

                  Record3: **{ 2009 , B.E , ECE , 4Sem , ASec , 1Group }**
Run Code Online (Sandbox Code Playgroud)

DistinctRecord:2 ------------------------ (OR)

                  Record4: **{ 2009 , B.E …
Run Code Online (Sandbox Code Playgroud)

linq-to-entities c#-4.0

7
推荐指数
2
解决办法
3万
查看次数

如何使用C#从字符串列表中提取公共部分

这是我的情景!

List<String> list = new List<String>();
list.Add("E9215001");
list.Add("E9215045");
list.Add("E1115001");
list.Add("E1115022");
list.Add("E1115003");
list.Add("E2115041");
list.Add("E2115042");
list.Add("E4115021");
list.Add("E5115062");
Run Code Online (Sandbox Code Playgroud)

我需要使用C#和LINQ从上面的列表中提取以下常用部分

E92150 - >摘自{*E92150*01,*E92150*45}

E11150 - >摘自{*E11150*01,*E11150*22,*E11150*03}

E21150 - >摘自{*E21150*41,*E21150*42}

E41150 - >摘自{*E41150*21}

E51150 - >摘自{*E51150*62}

更新:谢谢!大家!在@mlorbetske和@shelleybutterfly的帮助下,我已经明白了!

解:

list.Select((item, index) => new {
Index=index, 
Length=Enumerable.Range(1, (item.Length-2)) //I'm ignoring the last 2 characters
                 .Reverse()
                 .First(proposedLength => list.Count(innerItem =>  
                   innerItem.StartsWith(item.Substring(0, proposedLength))) > 
                   1)}).Select(n => list[n.Index].Substring(0, n.Length)).Distinct()
Run Code Online (Sandbox Code Playgroud)

c# linq

2
推荐指数
1
解决办法
1456
查看次数

标签 统计

c# ×1

c#-4.0 ×1

linq ×1

linq-to-entities ×1