IComparable<>,IFormattable,IEnumerable<>接口使用

简介: 1 Racer类 [Serializable] public class Racer : IComparable<Racer>, IFormattable { public Racer(string firstName = null, string lastName = null, string

1 Racer类

    [Serializable]
    public class Racer : IComparable<Racer>, IFormattable
    {   
                
        public Racer(string firstName = null, string lastName = null, string country = null,
            int starts = 0, int wins = 0, IEnumerable<int> years = null, IEnumerable<string> cars = null)
        {
            this.FirstName = firstName;
            this.LastName = lastName;
            this.Country = country;
            this.Starts = starts;
            this.Wins = wins;
            var yearList = new List<int>();
            foreach (int year in years)
            {
                yearList.Add(year);
            }
            this.Years = yearList.ToArray();

            var carList = new List<string>();
            foreach (string car in cars)
            {
                carList.Add(car);
            }
            this.Cars = carList.ToArray();
        }
        public string FirstName { get; set; }
        public string LastName { get; set; }
        public string Country { get; set; }
        public int Starts { get; set; }
        public int Wins { get; set; }
        public int[] Years { get; private set; }
        public string[] Cars { get; private set; }

        public int CompareTo(Racer r)
        {
            if (r == null) throw new ArgumentNullException("r");
            return this.LastName.CompareTo(r.LastName);
        }

        public override string ToString()
        {
            return string.Format("{0} {1}", FirstName, LastName);
        }

        public string ToString(string format)
        {
            return ToString(format, null);
        }

        public string ToString(string format, IFormatProvider formatProvider)
        {
            switch (format)
            {
                case "L":
                    return LastName;
                case "F":
                    return FirstName;
                case "C":
                    return Country;
                case "W":
                    return Wins.ToString();
                case "S":
                    return Starts.ToString();
                default:
                    throw new FormatException(string.Format("format:{0} not supported!", format));
            }
        }
    }


2 Team类

    public class Team
    {
        public Team(string name, params int[] years)
        {
            this.Name = name;
            this.Years = years;
        }

        private string Name { get; set; }
        private int[] Years { get; set; }
    }

3 初始化

            Racer racer = new Racer("Nino", "Farina", "Italy", 33, 5,
                new int[] { 1950 }, new string[] { "Alfa Romeo", "Maserati" });
            Team team1 = new Team("Vanwall", 1955);
            Team team2 = new Team("Cooper", 1959, 1960);

目录
相关文章
Comparable和Comparator有什么区别?你知道他们和Arrays.sort的关系吗?
Comparable和Comparator有什么区别?你知道他们和Arrays.sort的关系吗?
108 0
|
分布式计算 数据库 Spark
Spark的这些事&lt;二&gt;——几个概念
1、SparkContext [经常简称为 sc] spark app 的起点和入口,一般用来加载数据集,生成第一个 rdd。 2、定义一个 spark 应用程序所需要的三大步骤的逻辑:加载数据集,处理数据,结果展示。 加载数据集 加载数据集,这里的数据集大概分为两组: - 一种是不变的,静态数据集,大多数场景都是从数据库,文件系统上面加载进来
1384 0
|
存储 算法 C++
C++中的字符串操作&lt;cstring&gt;和&lt;string&gt;的区别
目录 目录 参考资料 字符串 cstring和string的区别在哪 string类的实现 注意不要盲目相信以下内容! 不要盲目相信以下内容! 不要盲目相信以下内容! (重要的事情说三遍),虽然以下内容也经过了我的验证,但是我的验证可能有错误的地方,欢迎大家留言告知。
1331 0
|
Java
Java集合转换【List&lt;--&gt;数组、List&lt;--&gt;Set、数组&lt;--&gt;Set、Map--&gt;Set、Map--&gt;List】
[java] view plaincopy //List--&gt;数组      List&lt;String&gt; list = new ArrayList&lt;String&gt;();      list.add("tom");      list.add("Jerval");      list.add("Wei
1393 0
Dev GridView 绑定List&lt;T&gt;、BindingList &lt;T&gt;、BindingSource
作者:jiankunking 出处:http://blog.csdn.net/jiankunking         今天听到同事处理数据结构的时候特意处理为了 BindingList&lt;T&gt;,据说可以直接绑定到Dev GridView上,于是测试了一下: 1、在Dev GridView中新增三列,三列的FieldName分别对应与FormItem类对应:ItemKey、Name
2483 0
.Net——Func&lt;&gt;与Action&lt;&gt;
                    首先来先写几个测试函数: public delegate void SayHello(string strName); public static void Hello(string strName) { Console.
1009 0
实现string类的操作符重载 + = &gt; &lt; == != &gt;&gt; &lt;&lt;
<pre code_snippet_id="596931" snippet_file_name="blog_20150203_1_6205569" name="code" class="objc">//MyString.h #pragma once #include &lt;iostream&gt; using namespace std; class MyString { priva
1388 0
|
Java
Cannot instantiate the type Map&lt;String,Boolean&gt;
无法实例化类型Map 错误代码: Map modelPropertys = new Map(); 看了一下Map的定义,public abstract interface java.util.Map 原来是抽象接口,不能直接实例化,需要使用它的实现类; 正确写法如下: Map modelPr...
607 0