C# LINQ join 子句

本文通过C#实现了一个简单的武侠角色及其技能的数据结构,并演示了如何根据特定技能筛选角色。通过对角色列表和技能列表进行LINQ查询,展示了如何找出使用特定武功的角色。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

using System;
using System.Collections.Generic;
using System.Linq;

namespace ConsoleApp4
{
    //武林高手
    class MatialArtsMaster
    {
        public int ID { get; set; }
        public string Name { get; set; }
        public int Age { get; set; }
        public string Menpai { get; set; }
        public string Kongfu { get; set; }
        public int Level { get; set; }
        public override string ToString()
        {
            return string.Format("id:{0},name:{1},age:{2},menpai:{3},kongfu:{4},level:{5}", this.ID, this.Name, this.Age, this.Menpai, this.Kongfu, this.Level);
        }
    }

    //武学
    class Kongfu
    {
        public int Id { get; set; }
        public string Name { get; set; }
        public int Power { get; set; }
        public Kongfu() { }
        public Kongfu(int id, string name, int power)
        {
            Id = id;
            Name = name;
            Power = power;
        }
        public override string ToString()
        {
            return string.Format("Id:{0},Name:{1},Power:{2}", this.Id, this.Name, this.Power);
        }
    }


    class Program
    {
        static void Main(string[] args)
        {
            var MasterList = new List<MatialArtsMaster>
            {
                new MatialArtsMaster(){ID=001,Name="黄蓉",Age=18,Menpai="丐帮",Kongfu="打狗棒法",Level=9},
                new MatialArtsMaster(){ID=002,Name="洪七公",Age=70,Menpai="丐帮",Kongfu="打狗棒法",Level=10},
                new MatialArtsMaster(){ID=003,Name="郭靖",Age=22,Menpai="丐帮",Kongfu="降龙十八掌",Level=10},
                new MatialArtsMaster(){ID=004,Name="任我行",Age=50,Menpai="明教",Kongfu="葵花宝典",Level=1},
                new MatialArtsMaster(){ID=005,Name="东方不败",Age=35,Menpai="明教",Kongfu="葵花宝典",Level=10},
                new MatialArtsMaster(){ID=006,Name="林平之",Age=23,Menpai="华山",Kongfu="葵花宝典",Level=7},
                new MatialArtsMaster(){ID=007,Name="岳不群",Age=50,Menpai="华山",Kongfu="岳不群",Level=8},
                new MatialArtsMaster(){ID=008,Name="令狐冲",Age=23,Menpai="华山",Kongfu="独孤九剑",Level=10},
                new MatialArtsMaster(){ID=009,Name="梅超风",Age=23,Menpai="梅花岛",Kongfu="九阴真经",Level=8},
            };
            var kungfuList = new List<Kongfu>()
            {
                new Kongfu(){Id=1,Name="打狗棒法",Power=90},
                new Kongfu(){Id=2,Name="降龙十八掌",Power=95},
                new Kongfu(){Id=3,Name="葵花宝典",Power=100},
                new Kongfu(){Id=4,Name="独孤九剑",Power=100},
                new Kongfu(){Id=5,Name="九阴真经",Power=100},
            };



            var res = from master in MasterList
                      join kungfu in kungfuList on master.Kongfu equals kungfu.Name
                      where master.Kongfu == "独孤九剑"
                      select new { master = master.Name, kungfu=kungfu.Power};
            foreach (var temp in res)
            {
                Console.WriteLine("{0,-10}{1}", temp.master, temp.kungfu);
            }

        }
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值