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;
    }

    三、结果

  • 相关阅读:
    paip.提升性能---- 网站并发数的总结.txt
    paip.mysql 5.6 安装总结
    UIView上添加了一个按钮和一个单击手势的事件相应,互相不影响的处理方法。。
    paip.mysql备份慢的解决
    paip.输入法编程---词频顺序order by py
    paip.超实用 360浏览器最近频繁奔溃解决流程.
    hdu 4044 GeoDefense (树形dp | 多叉树转二叉树)
    给定一个字符串,仅由a,b,c 3种小写字母组成。
    汉语-词语:心境2
    汉语-词语:休咎
  • 原文地址:https://www.cnblogs.com/YaoFrankie/p/9860300.html
Copyright © 2011-2022 走看看