就这会儿有空,就把List的相关方法如何使用又看了一下,现把示例代码贴出来;希望可以为不大会用的客友们提供些帮助;没有写全;但大部分都有。尽量看吧!
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;
namespace ConsoleLinq
{
/// <summary>
/// 用户
/// </summary>
public class User
{
public int UserId { get; set; }
public string UserName { get; set; }
public string Sex { get; set; }
public int Age { get; set; }
}
/// <summary>
/// 新闻
/// </summary>
public class News
{
public int NewsId { get; set; }
public string NewsTitle { get; set; }
public int UserId { get; set; }
}
public class Program
{
static void Main(string[] args)
{
//用户列表1
List<User> userList1 = new List<User>();
//userList1.Add(new User() { UserId = 1, UserName = "Kevin.Chen1", Sex = "male", Age = 10 });
//userList1.Add(new User() { UserId = 2, UserName = "Kevin.Chen2", Sex = "male", Age = 20 });
//userList1.Add(new User() { UserId = 3, UserName = "Kevin.Chen3", Sex = "female", Age = 30 });
//userList1.Add(new User() { UserId = 4, UserName = "Kevin.Chen4", Sex = "male", Age = 40 });
User User1 = new User() { UserId = 1, UserName = "Kevin.Chen1", Sex = "male", Age = 10 };
User User2 = new User() { UserId = 2, UserName = "Kevin.Chen2", Sex = "male", Age = 20 };
User User3 = new User() { UserId = 3, UserName = "Kevin.Chen3", Sex = "female", Age = 30 };
User User4 = new User() { UserId = 4, UserName = "Kevin.Chen4", Sex = "male", Age = 40 };
userList1.Add(User1);
userList1.Add(User2);
userList1.Add(User3);
//新闻列表1
List<News> newsList1 = new List<News>();
newsList1.Add(new News() { NewsId = 1, NewsTitle = "NewsTitle1", UserId = 1 });
newsList1.Add(new News() { NewsId = 2, NewsTitle = "NewsTitle2", UserId = 1 });
newsList1.Add(new News() { NewsId = 3, NewsTitle = "NewsTitle3", UserId = 2 });
newsList1.Add(new News() { NewsId = 4, NewsTitle = "NewsTitle4", UserId = 2 });
newsList1.Add(new News() { NewsId = 5, NewsTitle = "NewsTitle5", UserId = 3 });
newsList1.Add(new News() { NewsId = 6, NewsTitle = "NewsTitle6", UserId = 3 });
newsList1.Add(new News() { NewsId = 7, NewsTitle = "NewsTitle7", UserId = 4 });
newsList1.Add(new News() { NewsId = 8, NewsTitle = "NewsTitle8", UserId = 4 });
//----------------SQL:相当Where条件查找------------------------------------------------
//筛选年龄大于等于30的人:Where or FindAll(可以替换使用)
var resultsList0 = userList1.Where(u => u.Age >= 30);
var resultsList1 = userList1.FindAll(u => u.Age >= 30);
var resultsList2 = userList1.Where(u => u.UserName.Contains("Kevin"));//相当于Like 通配符条件等
var resultsList3 = userList1.Where(u => u.UserName.Substring(2).Contains("."));
var resultsList4 = userList1.Where(u => u.UserName.StartsWith("Kevin"));
var resultsList5 = userList1.Where(u => u.UserName.EndsWith("Chen2"));
var resultsList6 = userList1.FindAll(u => u.Age >= 30 && u.Age <= 40);//多条件筛选,其它以此参照;
//----------------SQL:相当于聚合函数相关操作--------------------------------------------
//平均年龄
double avgAge = userList1.Average(u => u.Age);
//求和
int sumAge = userList1.Sum(u => u.Age);
//最大值
int maxAge = userList1.Max(u => u.Age);
//最小值
int minAge = userList1.Min(u => u.Age);
//----------------去重相关方法------------------------------------------------------------
var newsResults = newsList1.Distinct();
//----------------返回bool值的相关使用方法------------------------------------------------
//用户列表中是否都是男的:All
bool isAllMan = userList1.All(u => u.Sex == "male");
//用户列表中是否存在男的:Exists or Any
bool isExistMan1 = userList1.Any(u => u.Sex == "male");
bool isExistMan2 = userList1.Exists(u => u.Sex == "male");
//----------------如何在新闻列表中查找用户列表存在的用户发布的新闻呢?--------------------
//FindAll and Exists
var resultList1 = newsList1.FindAll(n => userList1.Exists(u => u.UserId == n.UserId));
//FindAll and Any
var resultList2 = newsList1.FindAll(n => userList1.Any(u => u.UserId == n.UserId));
foreach (var item in resultList1)//resultList1 与 resultList2 结果是一样的
{
Console.WriteLine(item.NewsId + "," + item.NewsTitle + "," + item.UserId);
}
//----------------如何在新闻列表中查找不是用户列表存在的用户发布的新闻呢?-----------------
//FindAll and All
var resultList3 = newsList1.FindAll(n => userList1.All(u => u.UserId != n.UserId));
Console.WriteLine();
foreach (var item in resultList3)
{
Console.WriteLine(item.NewsId + "," + item.NewsTitle + "," + item.UserId);
}
//
//用户列表2
List<User> userList2 = new List<User>();
//userList2.Add(new User() { UserId = 3, UserName = "Kevin.Chen3", Sex = "female", Age = 30 });
//userList2.Add(new User() { UserId = 4, UserName = "Kevin.Chen4", Sex = "male", Age = 40 });
userList2.Add(User3);
userList2.Add(User4);
//两个列表合集去重复:Union
var rsltList1 = userList1.Union(userList2);
Console.WriteLine("两个列表合集去重复:Union");
foreach (var item in rsltList1)
{
Console.WriteLine(item.UserId + "," + item.UserName + "," + item.Age + "," + item.Sex);
}
//合并两个列表不去重复:Concat
var rsltList2 = userList1.Concat(userList2);
Console.WriteLine("合并两个列表不去重复:Concat");
foreach (var item in rsltList2)
{
Console.WriteLine(item.UserId + "," + item.UserName + "," + item.Age + "," + item.Sex);
}
//找出两个列表相同的项目:Intersect
var rsltList3 = userList1.Intersect(userList2);
Console.WriteLine("找出两个列表相同的项目:Intersect");
foreach (var item in rsltList3)
{
Console.WriteLine(item.UserId + "," + item.UserName + "," + item.Age + "," + item.Sex);
}
//找出两个列表不相同的项目:Except userList1相对于userList2
var rsltList4 = userList1.Except(userList2);
Console.WriteLine("找出两个列表不相同的项目:Except");
foreach (var item in rsltList4)
{
Console.WriteLine(item.UserId + "," + item.UserName + "," + item.Age + "," + item.Sex);
}
Console.ReadLine();
}
}
}