zoukankan      html  css  js  c++  java
  • 两个泛型实例之间的属性变化

    两个泛型实例之间的属性变化,需要借助Linq(select)以及一个新的方法,该方法接受的参数应为属性较全的泛型实例中的元素。

     一、类定义

    public class Person
    {
        public Person(string name, int age, List<string> hobbies)
        {
            Name = name;
            Age = age;
            Hobbies = hobbies;
        }
        public string Name { get; set; }
        public int Age { get; set; }
        public List<string> Hobbies { get; set; }
    }
    
    public class Student
    {
        public string Name { get; set; }
        public int Age { get; set; }
        public List<string> Hobbies { get; set; }
        public List<string> Teachers { get; set; }
    }
    
    public class StudentAndTeacherRelationship
    {
        public StudentAndTeacherRelationship(string studentName, List<string> teachers)
        {
            StudentName = studentName;
            Teachers = teachers;
        }
        public string StudentName { get; set; }
        public List<string> Teachers { get; set; }
    }

    二.具体代码

    static void Main(string[] args)
    {
        var ThreePerson = new List<Person>()
        {
            new Person("frankie", 22, new List<string>() {"Play basketball", "running"}),
            new Person("asan", 23, new List<string>() {"reading", "play games"}),
            new Person("Qin", 24, new List<string>() {"running", "coding"})
        };
        // 不同类型对象之间的属性映射
        Mapper.Initialize(_ => _.CreateMap<Person, Student>());
        var ThreeStudent = Mapper.Map<List<Student>>(ThreePerson);
    
        // 通过Linq语句和一个方法,进行泛型实例之间的属性变化
        ThreeStudent = ThreeStudent.Select(AddTeachersRelationship).ToList();
    }
    
    public static Student AddTeachersRelationship(Student stu)
    {
        var studentAndTeacherRelationship = new List<StudentAndTeacherRelationship>()
        {
            new StudentAndTeacherRelationship("frankie", new List<string>() {"cb", "hongmei"}),
            new StudentAndTeacherRelationship("asan", new List<string>() {"xuyuncong", "fanguangyu"}),
            new StudentAndTeacherRelationship("Qin", new List<string>() {"liusanming", "xuyuncong"})
        };
        foreach (var item in studentAndTeacherRelationship)
        {
            if (stu.Name.Equals(item.StudentName))
            {
                stu.Teachers = item.Teachers;
            }
        }
        return stu;
    }

    三、结果

  • 相关阅读:
    cp备份操作时如何忽略指定的目录
    Wordpress“固定链接”页面出现404原因及解决方法
    CentOS7上搭建WEB服务器
    坑爹的云服务安全组
    java spring hibernate
    电脑性能
    android subclipse subversive
    android 开发 程序中下载安装APK文件 问题汇总 解析程序包时出现问题
    android sqlite datetime demo
    android SurfaceView中播放视频 按视频的原始比例播放
  • 原文地址:https://www.cnblogs.com/YaoFrankie/p/9860300.html
Copyright © 2011-2022 走看看