C# 如何使用LINQ从列表中获取数据<;字符串>;[]

C# 如何使用LINQ从列表中获取数据<;字符串>;[],c#,performance,linq,optimization,C#,Performance,Linq,Optimization,我有这个代码,这是工作,但我想优化。 我希望尽可能避免使用foreach部分。有没有办法通过LINQ实现这一点?也就是说,如果LINQ是更好的选择,那么循环 var collaborators = projects.Where(p => p.CollaboratingOrganisations != null && p.CollaboratingOrganisations.Cou

我有这个代码,这是工作,但我想优化。 我希望尽可能避免使用foreach部分。有没有办法通过LINQ实现这一点?也就是说,如果LINQ是更好的选择,那么循环

        var collaborators = projects.Where(p => p.CollaboratingOrganisations != null
                                        && p.CollaboratingOrganisations.Count > 0)
                                    .Select(p => p.CollaboratingOrganisations).ToArray();
        List<string> collaboratingOrgNameList = new List<string>();
        foreach (var org in collaborators)
        {
            collaboratingOrgNameList.AddRange(org);
        }
var collaborators=projects.Where(p=>p.collaborationorganizations!=null
&&p.CollaborationOrganizations.Count>0)
.Select(p=>p.CollaborationOrganizations).ToArray();
List CollaborationOrgNameList=新建列表();
foreach(合作者中的var组织)
{
CollaborationOrgNameList.AddRange(org);
}
你可以这样做

  List<string> collaboratingOrgNameList = collaborators.SelectMany(s => s).ToList();
List collaborationorgname List=collaborators.SelectMany(s=>s.ToList();

为什么我的问题被否决了?这非常有效,谢谢。现在我学到了一些新东西:)