C#中使用数组List的实例代码

 更新时间:2019年10月19日 08:59  点击:1763

一、List排序

一、List排序

二、用Linq将两个list合并为一个list

三、对List里面的某个数据进行操作并保存

四、List转化为IQueryable

五、使用LINQ从List集合中删除指定集合元素


 采用自定义Sort比较器和Linq

class Persion
    {
        public string name;
        public int age;
}
//自定义Sort方法
private static void sortListClass()
        {
            Persion p1 = new Persion() { name = "huyong", age = 27 };
            Persion p2 = new Persion() { name = "tansha", age = 25 };
            List<Persion> listPersion = new List<Persion>();
            listPersion.Add(p1);
            listPersion.Add(p2);
            listPersion.Sort(sortage);
            foreach (var item in listPersion)
            {
                Console.WriteLine(item.name + ":" + item.age);
            }
        }
        static int sortage(Persion x, Persion y)
        {
            if (x.age < y.age) return -1;                //按age从大到小 降序排列
            else if (x.age == y.age) return 0;
            else return 1;
        }
//linq方法
 private static void sortLinq()
        {
            Persion p1 = new Persion() { name = "huyong", age = 27 };
            Persion p2 = new Persion() { name = "tansha", age = 25 };
            Persion p3 = new Persion() { name = "tansha", age = 27 };
            List<Persion> listPersion = new List<Persion>();
            listPersion.Add(p1);
            listPersion.Add(p2);
            listPersion.Add(p3);

 var lList = from t in listPersion where (t.age == 27) orderby t.name ascending select t;
            foreach (var item in lList)
            {
                Console.WriteLine(item.name + ":" + item.age);
            }
        }

二、用Linq将两个list合并为一个list

//linq合并两个list,根据某一相同字段
private static void mergeList()
        {
            Persion p1 = new Persion() { name = "hy", province = "jx" };
            Persion p2 = new Persion() { name = "tansha", province = "hn" };
            Persion p3 = new Persion() { name = "ht", province = "gd" };
            List<Persion> listPersion = new List<Persion>();
            listPersion.Add(p1);
            listPersion.Add(p2);
            listPersion.Add(p3);

            Persion p11 = new Persion() { name = "hy", age = 23, sex = "男" };
            Persion p21 = new Persion() { name = "tansha", age = 12, sex = "女" };
            Persion p31 = new Persion() { name = "ht", age = 7, sex = "男" };
            List<Persion> listPersion2 = new List<Persion>();
            listPersion2.Add(p11);
            listPersion2.Add(p21);
            listPersion2.Add(p31);

            //linq合并两个list,根据某一相同字段
            var list = from pp1 in listPersion
                       join pp2 in listPersion2 on pp1.name equals pp2.name
                       select new Persion
                       {
                           name = pp1.name,
                           province = pp1.province,
                           age = pp2.age,
                           sex = pp2.sex
                       };
            foreach (var item in list)
            {
                Console.WriteLine(item.name + ":" + item.age + ":" + item.sex + ":" + item.province);
            }
        }

三、对List里面的某个数据进行操作并保存

lists.Where(q =>q.SellChannelId == ((int)SellChannelType.PB).ToString()).ToList().ForEach(q => q.index = 10);

四、List<T>转化为IQueryable<T>

不能直接转换,

IQueryable在数据库端中查询,

IEnumerable在内存上查询。

List<T>支持后者。可以用 list.AsQueryable<T>转换。


五、使用LINQ从List<T>集合中删除指定集合元素

实体类(Author):

public class Author{    public int id{get;set;}   public string firstname{get;set;}   public string lastname {get;set;}
}

比如有如下的LINQ查询语句:

var authors = from x in authorsList              
select x;

其中,需要从查询集合中删除 firstname=’Bob’ 的所有用户,应该如何实现呢?

方案一:

authorsList = authorsList.Where(x => x.FirstName != "Bob").ToList();
//或者
authorsList.RemoveAll(x => x.firstname == "Bob");
var authorsList = new List<Author>()
{
    new Author{ Firstname = "Bob", Lastname = "Smith" },
    new Author{ Firstname = "Fred", Lastname = "Jones" },
    new Author{ Firstname = "Brian", Lastname = "Brains" },
    new Author{ Firstname = "Billy", Lastname = "TheKid" }
};

var authors = authorsList.Where(a => a.Firstname == "Bob");
authorsList = authorsList.Except(authors).ToList();
authorsList = authorsList.Except(authorsList.Where(a=>a.Firstname=="Billy")).ToList();


[!--infotagslink--]

相关文章

  • Java8 实现stream将对象集合list中抽取属性集合转化为map或list

    这篇文章主要介绍了Java8 实现stream将对象集合list中抽取属性集合转化为map或list的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-02-05
  • java8如何用Stream查List对象某属性是否有重复

    这篇文章主要介绍了java8如何用Stream查List对象某属性是否有重复的操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2021-09-11
  • 在java中获取List集合中最大的日期时间操作

    这篇文章主要介绍了在java中获取List集合中最大的日期时间操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-08-15
  • C#中list用法实例

    这篇文章主要介绍了C#中list用法,结合实例形式分析了C#中list排序、运算、转换等常见操作技巧,具有一定参考借鉴价值,需要的朋友可以参考下...2020-06-25
  • Java8处理List的双层循环问题

    这篇文章主要介绍了Java8处理List的双层循环问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-08-19
  • C# List 排序各种用法与比较

    这篇文章主要介绍了C# List 排序各种用法与比较的相关资料,需要的朋友可以参考下...2020-06-25
  • 使用list stream: 任意对象List拼接字符串

    这篇文章主要介绍了使用list stream:任意对象List拼接字符串操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2021-09-09
  • C# List介绍及具体用法

    这篇文章主要介绍了C# List介绍及具体用法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-06-25
  • Java List集合返回值去掉中括号('[ ]')的操作

    这篇文章主要介绍了Java List集合返回值去掉中括号('[ ]')的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-08-29
  • Python 列表(List)的底层实现原理分析

    这篇文章主要介绍了Python 列表(List)的底层实现原理分析,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-03-09
  • R语言-如何将list转换为向量

    这篇文章主要介绍了R语言-将list转换为向量的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-05-06
  • C#中数组、ArrayList、List、Dictionary的用法与区别浅析(存取数据)

    在工作中经常遇到C#数组、ArrayList、List、Dictionary存取数据,但是该选择哪种类型进行存储数据呢?很迷茫,今天小编抽空给大家整理下这方面的内容,需要的朋友参考下吧...2020-06-25
  • C#中List和数组之间转换的方法

    这篇文章主要介绍了C#中List和数组之间转换的方法,涉及比较简单的转换技巧,需要的朋友可以参考下...2020-06-25
  • C#中实现任意List的全组合算法代码

    这篇文章主要是介绍了.net C# 实现任意List的全组合算法实现代码,需要的朋友可以参考下...2020-06-25
  • C#中List和SortedList的简介

    今天小编就为大家分享一篇关于C#中List和SortedList的简介,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧...2020-06-25
  • C# 列表List的常用属性和方法介绍

    这篇文章主要介绍了C# 列表List的常用属性和方法介绍,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-04-12
  • C#控制台基础 list<>初始化的两种方法

    这篇文章主要介绍了C#控制台基础 list<>初始化的两种方法,需要的朋友可以参考下...2020-06-25
  • list与push的区别

    //函数list while(list($id,$username,$password,$add_date,$mdn,$mobile,$channel,$last_date,$area,$nickname) = mysql_fetch_array($rs)){ ...2016-11-25
  • DropDownList添加客户端下拉事件操作

    我们知道,DropDownList下拉框是一个服务器控件,有时候,有些朋友为了方便绑定DropDownList下拉框的选项,但又想在DropDownList实现客户端的下拉事件,那该怎么实现呢?...2021-09-22
  • Java List的remove()方法陷阱以及性能优化

    Java List在进行remove()方法是通常容易踩坑,本文就详细的介绍一下陷阱以及性能优化,感兴趣的可以了解一下...2021-11-01