using System.Globalization;
using System.Collections.Generic;
using System.Text.RegularExpressions;
public static void Main()
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 list2 = typeList.Join(
Console.Write("@左減右。\r\n");
Console.Write(JsonConvert.SerializeObject(list2) + "\r\n");
var list = playerList.Join(
Console.Write("左側取交集。\r\n");
Console.Write(JsonConvert.SerializeObject(list) + "\r\n");
var list1 = playerList.Join(
Console.Write("右側取交集。\r\n");
Console.Write(JsonConvert.SerializeObject(list1) + "\r\n");
var glist = playerList.GroupJoin(
Console.Write("左側聯集。留左砍右。\r\n");
Console.Write(JsonConvert.SerializeObject(glist) + "\r\n");
var glist1 = playerList.GroupJoin(
Console.Write("右側聯集。留右砍左。\r\n");
Console.Write(JsonConvert.SerializeObject(glist1) + "\r\n");
public int Id { get; set; }
public string Name { get; set; }
public int Id { get; set; }
public string Name { get; set; }
public int TypeId { get; set; }