C# 返回列表值列表(合并)

C# 返回列表值列表(合并),c#,asp.net,.net,list,foreach,C#,Asp.net,.net,List,Foreach,我希望能够返回来自查询的所有“列表值”的列表。'下面的“查询”从数据库返回多行结果,每行作为列表中的一项。从db返回的示例结果如下所示 放置断点时的示例查询结果:(这是“query”下面的第一行代码从db返回的内容) 姓名=约翰;地址=1230,Ewded;listOfCities=“纽约、中国、洛杉矶” 姓名=埃里克;地址=12,Ewded;listOfCities=“BO、SE或” 代码: List query=getresultsbufromdb(); //此时的查询内容如1,2所示 列表

我希望能够返回来自查询的所有“列表值”的列表。'下面的“查询”从数据库返回多行结果,每行作为列表中的一项。从db返回的示例结果如下所示

放置断点时的示例查询结果:(这是“query”下面的第一行代码从db返回的内容)

  • 姓名=约翰;地址=1230,Ewded;listOfCities=“纽约、中国、洛杉矶”
  • 姓名=埃里克;地址=12,Ewded;listOfCities=“BO、SE或”
  • 代码:

    List query=getresultsbufromdb();
    //此时的查询内容如1,2所示
    列表结果=新列表();
    foreach(查询中的var项)
    {      
    结果。添加(项目列表);
    //“结果”列表采用字符串而不是列表
    //如何返回项目的合并列表
    }
    返回结果;//这应该有“NY、CH、LA、BO、SE或”
    //我正试图得到一份从1,2开始的所有城市的列表
    //一张单子。
    
    您可以基于
    拆分方法尝试此代码

    var result = yourString.Split(',');
    
    
    var input = "NY, CH, LA";
    var result = input.Split(',');
    
    您可以将此值保存在
    列表中

    var list=newlist();
    列表。添加(结果);
    
    您需要
    AddRange
    string.Split
    方法

    results.AddRange(string.Split(',', item.ListCities));
    
    string.Split
    将字符串拆分为一个数组,只要它找到给定的字符,add range就会将数组中的所有项目添加到列表中。

    尝试以下操作:

    var result = query.SelectMany(x => x.listOfCities.Split(','));
    
    或使用

    var result = query.SelectMany(x => x.listOfCities.Split(',')).Distinct();
    

    要获得不重复的列表。

    如果您喜欢Linq,则可以执行以下一行操作:

    using System.Linq;
    
    List<string> result = query.SelectMany(s => s.listCities).ToList();
    
    使用System.Linq;
    List result=query.SelectMany(s=>s.listcity.ToList();
    

    (这与oleksii的AddRange基本相同。)

    列表中有一种方法允许您添加多个项

    foreach (var item in query)
    {      
        results.AddRange(item.listCities);  
    }
    
    文件

    此外,如果需要过滤掉一些重复项,可以使用LINQ方法

    using System.Linq;
    
    List<string> result = query.SelectMany(s => s.listCities).ToList();
    
    foreach (var item in query)
    {      
        results.AddRange(item.listCities);  
    }