当前位置:编程学习 > C#/ASP.NET >>

List<T> 中找出指定的对像

List<model> list

int[] arr={1,2,3,4,5,6};

list.FindAll();
list.Seleect();

用这两个方法,怎样找出list 中model.id  存中于arr数组中的对像
或还有什么方法可以查找出来。
LIST --------------------编程问答-------------------- var query = list.Where(x => arr.Contains(x.id)); --------------------编程问答-------------------- refer:
 public class Model
    {
        public Model(int id)
        {
            this.Id = id;
        }
        public int Id { get; set; }
    }

static void Main(string[] args)
        {
            int[] arr = { 1, 2, 3, 4, 5, 6 };
            List<Model> list = new List<Model>();
            list.Add(new Model(5));

            List<Model> newList = new List<Model>();
            foreach (Model model in list)
            {
                foreach (int arrs in arr)
                {
                    if (model.Id == arrs)
                    {
                        newList.Add(new Model(model.Id));
                    }
                }
            }

            newList.ForEach(x => Console.WriteLine(x.Id));//输出5
        }
--------------------编程问答--------------------

var result = from c in list join b in array on c.id equals b select c;
--------------------编程问答-------------------- or linq:
 var result = from p in arr.AsEnumerable()
                         from q in list.AsEnumerable()
                         where Convert.ToInt32(p.ToString()) == q.Id
                         select q;
            result.ToList().ForEach(x => Console.WriteLine(x.Id));
--------------------编程问答--------------------
引用 2 楼 guwei4037 的回复:
refer:
 public class Model
    {
        public Model(int id)
        {
            this.Id = id;
        }
        public int Id { get; set; }
    }

static void Main(string[] args)
        {
            int[] arr = { 1, 2, 3, 4, 5, 6 };
            List<Model> list = new List<Model>();
            list.Add(new Model(5));

            List<Model> newList = new List<Model>();
            foreach (Model model in list)
            {
                foreach (int arrs in arr)
                {
                    if (model.Id == arrs)
                    {
                        newList.Add(new Model(model.Id));
                    }
                }
            }

            newList.ForEach(x => Console.WriteLine(x.Id));//输出5
        }


你这个也太搞了吧,还双重FOR 好臃肿  --------------------编程问答-------------------- linq很方便的 --------------------编程问答--------------------
引用 5 楼 weeetcom 的回复:
Quote: 引用 2 楼 guwei4037 的回复:

refer:
 public class Model
    {
        public Model(int id)
        {
            this.Id = id;
        }
        public int Id { get; set; }
    }

static void Main(string[] args)
        {
            int[] arr = { 1, 2, 3, 4, 5, 6 };
            List<Model> list = new List<Model>();
            list.Add(new Model(5));

            List<Model> newList = new List<Model>();
            foreach (Model model in list)
            {
                foreach (int arrs in arr)
                {
                    if (model.Id == arrs)
                    {
                        newList.Add(new Model(model.Id));
                    }
                }
            }

            newList.ForEach(x => Console.WriteLine(x.Id));//输出5
        }


你这个也太搞了吧,还双重FOR 好臃肿 


你不识好歹

你查看Linq方法内部实现去 --------------------编程问答-------------------- 为什么真能用那两个方法,1楼的可以呀。 --------------------编程问答--------------------
引用 1 楼 caozhy 的回复:
var query = list.Where(x => arr.Contains(x.id));

1楼正解 --------------------编程问答--------------------
引用 1 楼 caozhy 的回复:
var query = list.Where(x => arr.Contains(x.id));

版主  没见过这种写法、、  能教教么、、   或者给点资料
--------------------编程问答--------------------

var ls1 = list.FindAll(p => arr.Contains(p.ID));
var ls2 = list.Select(p => arr.Contains(p.ID));
--------------------编程问答-------------------- 这种写法也可以

var ls2 = ls.Select(delegate (Model.Sys_student p){ return ids.Contains(p.ID);})

--------------------编程问答--------------------
引用 11 楼 voodooer 的回复:

var ls1 = list.FindAll(p => arr.Contains(p.ID));
var ls2 = list.Select(p => arr.Contains(p.ID));

我就想为什么我找不到where这个东西、、  原来是因为我的框架是2.0的...   --------------------编程问答-------------------- 3Q3Q --------------------编程问答-------------------- 除
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,