1. 集合(Collections)
集合是C#中常用的数据结构,可以用来存储和操作多个相关的对象。C#提供了一些内置的集合类型,例如数组、列表、字典等。
1.1 数组(Array)
数组是一种简单的集合,它可以在内存中连续存储多个相同类型的元素。我们可以通过索引来访问数组中的元素,索引从0开始。
以下是一个创建和使用数组的示例:
int[] numbers = new int[5];
numbers[0] = 10;
numbers[1] = 20;
numbers[2] = 30;
numbers[3] = 40;
numbers[4] = 50;
Console.WriteLine(numbers[2]); // 输出30
1.2 列表(List)
列表是C#中常用的动态集合,可以存储多个对象并根据需要自动调整大小。列表提供了更灵活的操作元素的方法,例如添加、删除、插入等。
以下是一个创建和使用列表的示例:
List<string> fruits = new List<string>();
fruits.Add("apple");
fruits.Add("banana");
fruits.Add("orange");
Console.WriteLine(fruits[1]); // 输出banana
2. 比较(Comparison)
在C#中,我们经常需要对对象进行比较。C#提供了多种比较对象的方法,例如使用比较运算符、实现接口等。
2.1 比较运算符
比较运算符可以用于比较两个对象的大小关系。通常,我们可以使用比较运算符来比较数值类型、字符串和枚举类型。
int num1 = 10;
int num2 = 20;
if(num1 < num2)
{
Console.WriteLine("num1 is less than num2");
}
string str1 = "hello";
string str2 = "world";
if(str1 == str2)
{
Console.WriteLine("str1 is equal to str2");
}
2.2 IComparable接口
IComparable接口定义了一个方法用于比较两个对象的大小关系。如果一个类实现了IComparable接口,那么该类的对象可以进行比较。
以下是一个实现IComparable接口的示例:
public class Person : IComparable<Person>
{
public string Name { get; set; }
public int Age { get; set; }
public int CompareTo(Person other)
{
return this.Age.CompareTo(other.Age);
}
}
Person person1 = new Person { Name = "Tom", Age = 20 };
Person person2 = new Person { Name = "Jerry", Age = 30 };
if(person1.CompareTo(person2) < 0)
{
Console.WriteLine("person1 is younger than person2");
}
3. 转换(Conversion)
在C#中,我们经常需要在不同类型之间进行转换。C#提供了多种类型转换的方法,例如隐式转换、显式转换和类型转换函数等。
3.1 隐式转换
隐式转换是指当一种类型的数据赋值给另一种类型的变量时,如果目标类型可以容纳源类型的值,那么会自动进行转换。
int num = 10;
double num2 = num; // 隐式转换
3.2 显式转换
显式转换是指需要使用特定的转换语法来将一种类型的数据转换为另一种类型。如果目标类型无法容纳源类型的值,会发生数据丢失或错误。
以下是一个使用显式转换的示例:
double num1 = 10.5;
int num2 = (int)num1; // 显式转换
Console.WriteLine(num2); // 输出10
3.3 类型转换函数
C#提供了一些内置的类型转换函数,用于完成特定类型之间的相互转换。常用的类型转换函数有Parse()、Convert.ToXxx()等。
以下是一个使用类型转换函数的示例:
string str = "123";
int num = int.Parse(str); // 使用Parse()函数进行转换
Console.WriteLine(num); // 输出123
以上是关于C#集合、比较和转换的入门学习内容。通过使用集合,我们可以更方便地处理和操作多个相关的对象;比较和转换使我们能够对对象进行大小关系的比较和类型之间的转换。这些是C#编程中非常基础且常用的知识点,对于进一步学习和实践C#编程是必不可少的。