理解一下 聯集 交集
線上測試
using System;
using System.Globalization;
using System.Collections.Generic;
using System.Linq;
using System.Text.RegularExpressions;
using System.Xml.Linq;
using Newtonsoft.Json;
namespace Rextester
{
public class Program
{
public static void Main(string[] args)
{
var playerList = new List<Player>
{
new Player { Id = 1, Name = "A Player", TypeId = 0 },
new Player { Id = 2, Name = "B Player", TypeId = 1 },
new Player { Id = 4, Name = "C Player", TypeId = 2 },
};
var typeList = new List<TypeData>
{
new TypeData { Id = 1, Name = "Type 1" },
new TypeData { Id = 2, Name = "Type 2" },
new TypeData { Id = 3, Name = "Type 3" },
new TypeData { Id = 4, Name = "Type 4" },
};
var list = playerList.Join(
typeList,
person => person.TypeId,
phone => phone.Id,
(left, right) => left);
Console.Write("左側取交集。\r\n");
Console.Write(JsonConvert.SerializeObject(list) + "\r\n");
var list1 = playerList.Join(
typeList,
person => person.TypeId,
phone => phone.Id,
(left, right) => right);
Console.Write("右側取交集。\r\n");
Console.Write(JsonConvert.SerializeObject(list1) + "\r\n");
var glist = playerList.GroupJoin(
typeList,
person => person.TypeId,
phone => phone.Id,
(left, right) => left);
Console.Write("左側聯集。留左砍右。\r\n");
Console.Write(JsonConvert.SerializeObject(glist) + "\r\n");
var glist1 = playerList.GroupJoin(
typeList,
person => person.TypeId,
phone => phone.Id,
(left, right) => right);
Console.Write("右側聯集。留右砍左。\r\n");
Console.Write(JsonConvert.SerializeObject(glist1) + "\r\n");
}
public class TypeData
{
public int Id { get; set; }
public string Name { get; set; }
}
public class Player
{
public int Id { get; set; }
public string Name { get; set; }
public int TypeId { get; set; }
}
}
}
線上測試
using System;
using System.Globalization;
using System.Collections.Generic;
using System.Linq;
using System.Text.RegularExpressions;
using System.Xml.Linq;
using Newtonsoft.Json;
namespace Rextester
{
public class Program
{
public static void Main(string[] args)
{
var playerList = new List<Player>
{
new Player { Id = 1, Name = "A Player", TypeId = 0 },
new Player { Id = 2, Name = "B Player", TypeId = 1 },
new Player { Id = 4, Name = "C Player", TypeId = 2 },
};
var typeList = new List<TypeData>
{
new TypeData { Id = 1, Name = "Type 1" },
new TypeData { Id = 2, Name = "Type 2" },
new TypeData { Id = 3, Name = "Type 3" },
new TypeData { Id = 4, Name = "Type 4" },
};
var list = playerList.Join(
typeList,
person => person.TypeId,
phone => phone.Id,
(left, right) => left);
Console.Write("左側取交集。\r\n");
Console.Write(JsonConvert.SerializeObject(list) + "\r\n");
var list1 = playerList.Join(
typeList,
person => person.TypeId,
phone => phone.Id,
(left, right) => right);
Console.Write("右側取交集。\r\n");
Console.Write(JsonConvert.SerializeObject(list1) + "\r\n");
var glist = playerList.GroupJoin(
typeList,
person => person.TypeId,
phone => phone.Id,
(left, right) => left);
Console.Write("左側聯集。留左砍右。\r\n");
Console.Write(JsonConvert.SerializeObject(glist) + "\r\n");
var glist1 = playerList.GroupJoin(
typeList,
person => person.TypeId,
phone => phone.Id,
(left, right) => right);
Console.Write("右側聯集。留右砍左。\r\n");
Console.Write(JsonConvert.SerializeObject(glist1) + "\r\n");
}
public class TypeData
{
public int Id { get; set; }
public string Name { get; set; }
}
public class Player
{
public int Id { get; set; }
public string Name { get; set; }
public int TypeId { get; set; }
}
}
}
留言
張貼留言