请问如何才能将每个关键字对应的结果分别存放在不同的list中


List<A>包含若干个A对象
对象A包含若干个属性,每个属性为一个List<string>

List<string> B 包含若干个关键字

需要找到A中的某个List<string>包含List<string> B 中的关键字的数据,并根据关键字的不同对应的数据存放在不同的List中

题主要的代码如下

img

using System;
using System.Collections.Generic;
using System.Linq;
namespace ConsoleApp2
{
    class A
    {
        public List<string> attr1 { get; set; }
        public List<string> attr2 { get; set; }
    }
    class Program
    {
        static void Main(string[] args)
        {
            var B = new List<string> { "root", "user" };
            var alist = new List<A>
            {
                new A{
                    attr1=new List<string>{ "System user", "root password", "System name", "root" },
                    attr2=new List<string>{ "Opereate user", "root user", "Administrator", "localhost root" }
                }
            };
            var kv = new Dictionary<string, List<string>>();
            foreach (var b in B)
            {
                kv.Add(b, new List<string>());
                foreach (var a in alist)
                {

                    //a.attr1.Union(a.attr2).Where(i => i.ToLower().Contains(b.ToLower()))//如果不区分大小写用这个

                    //有更多的属性要查询自己继续Union后再Where查询
                    kv[b].AddRange(a.attr1.Union(a.attr2).Where(i => i.Contains(b)).ToList());
                }
            }

            foreach (var kp in kv)
            {
                Console.WriteLine(kp.Key);
                Console.WriteLine(string.Join("\n", kp.Value.Distinct()));

                Console.WriteLine("\n\n");
            }

            Console.ReadKey();
        }
    }
}



img


有其他问题可以继续交流~