代码之家  ›  专栏  ›  技术社区  ›  user584018

C:需要获取“sampledata config”config=client的所有“sampledata”

  •  0
  • user584018  · 技术社区  · 6 年前

    我正在尝试获取“sampledata config”config=client的所有“sampledata”。

    下面的问题给我 List<IEnumerable<SampleDataConfig>> 而不是 List<SampleData> .

    var X = data.Select(s => s.SampleDataConfig.Where(p => p.Config == "Client")).ToList();

    怎么了?

     class Program
    {
        static void Main(string[] args)
        {
            List<SampleData> data = new List<SampleData>
            {
                new SampleData { Name = "A1", SampleDataConfig = new List<SampleDataConfig> { new SampleDataConfig { Name = "Belong", Config = "Client" }, new SampleDataConfig { Name = "Belong", Config = "Server" } } },
                new SampleData { Name = "A2", SampleDataConfig = new List<SampleDataConfig> { new SampleDataConfig { Name = "Belong", Config = "Server" } } }
            };
    
            var X = data.Select(s => s.SampleDataConfig.Where(p => p.Config == "Client")).ToList();
    
            foreach(var x in X)
            {
                x.
            }
    
            Console.ReadKey();
        }
    }
    
    public class SampleData
    {
        public string Name { get; set; }
        public List<SampleDataConfig> SampleDataConfig { get; set; } = new List<SampleDataConfig>();
    }
    
    public class SampleDataConfig
    {
        public string Name { get; set; }
        public string Config { get; set; }
    }
    
    1 回复  |  直到 6 年前
        1
  •  1
  •   Gaurang Dave    6 年前

    测试和工作

    使用LINQ查询

    var X = (from sd in data
            from sdc in sd.SampleDataConfig
            where sdc.Config == "Client"
            select sd).ToList();
    

    使用Linq lambda

    var Y = data.Where(x => x.SampleDataConfig.Any(s=>s.Config == "Client")).ToList();