需要将一个类转换为具有不同值集合的另一个类

时间:2019-05-01 02:57:08

标签: c# linq

我上课

 public class SwiftCodeInfo
    {
      public string Country {get; set;}
      public string SwiftCode {get; set;}
      public string BranchCode {get; set;}
    }

并且这个类有价值

var swiftCodeInfo = new List<SwiftCodeInfo>();

swiftCodeInfo.Add(new SwiftCodeInfo{Country ="USA", SwiftCode ="ABCDEFGH", BranchCode="101"});
swiftCodeInfo.Add(new SwiftCodeInfo{Country ="USA", SwiftCode ="ABCDEFGH", BranchCode="102"});
swiftCodeInfo.Add(new SwiftCodeInfo{Country ="USA", SwiftCode ="ABCDEFGH", BranchCode="103"});
swiftCodeInfo.Add(new SwiftCodeInfo{Country ="USA", SwiftCode ="XYZABCDEF", BranchCode="104"});
swiftCodeInfo.Add(new SwiftCodeInfo{Country ="USA", SwiftCode ="XYZABCDEF", BranchCode="105"});
swiftCodeInfo.Add(new SwiftCodeInfo{Country ="IND", SwiftCode ="ABCDEFGH", BranchCode="106"});

现在还有另一个课程

 public class BranchCode
        {
          public string Country {get; set;}
          public string SwiftCode {get; set;}
          public List<string> BranchCodes {get; set;}
        }

我想要像这样的BranchCodes类中的值

var Branches = new List<BranchCode>{
           new BranchCode{Country = "USA", SwiftCode ="ABCDEFGH", BranchCodes = new List<string>{"101","102","103"}},
           new BranchCode{Country = "USA", SwiftCode ="XYZABCDEF", BranchCodes = new List<string>{"104","105"}},
           new BranchCode{Country = "IND", SwiftCode ="ABCDEFGH", BranchCodes = new List<string>{"106"}}   
    };

请帮助我实现这一目标。

1 个答案:

答案 0 :(得分:2)

您可以尝试GroupByCountrySwiftCode

swiftCodeInfo.GroupBy(l => new { l.Country, l.SwiftCode })
             .Select(g => new BranchCode {
                    Country = g.Key.Country, 
                    SwiftCode = g.Key.SwiftCode, 
                    BranchCodes = g.Select(i => i.BranchCode).ToList() 
                });

c# online