轨道
/
C#
C#
/
练习
/
Tracks on Tracks on Tracks
Tracks on Tracks on Tracks

Tracks on Tracks on Tracks

学习练习

简介

泛型

集合的定义通常会在尖括号中放入一个占位符,按照惯例通常写作T。这样的集合称为泛型。这样,集合的使用者就可以指定要在集合中存储什么类型的元素。在下面的示例代码中,我们实例化了一个字符串数组。

数组

C# 中的数组是基元值或结构体、类实例的集合。它们在基类库中实现为List<T>,其中T是数组中元素的类型。API 提供了丰富的方法来创建和操作数组。

元素可以添加到数组中,也可以从数组中移除。数组会根据需要增长和缩小。

var listOfStrings = new List<string>();

说明

在这个练习中,你将编写代码,记录一份你想在 Exercism 上学习的编程语言数组。

共有 9 个任务,每一个都要和数组打交道。

1. 创建一个新数组

为了记录你想学习的语言,你需要创建一个新数组。

实现静态方法 Languages.NewList(),让它返回一个新的空数组。

Languages.NewList()
// => empty list

2. 定义一个已有的数组

目前,你手上有张纸,上面列出了你想学习的语言:C#、Clojure 和 Elm。

请实现静态方法 Languages.GetExistingLanguages(),返回这个数组。

Languages.GetExistingLanguages();
// => {"C#", "Clojure", "Elm"}

3. 向数组中添加一门新语言

当你在 Exercism 上探索、发现更多有趣的语言时,你会想把它们加进数组里。

实现静态函数 Languages.AddLanguage(),把一门新语言添加到数组末尾。

Languages.AddLanguage(Languages.GetExistingLanguages(), "VBA");
// => {"C#", "Clojure", "Elm", "VBA"}

4. 统计数组中的语言数量

一门一门地清点语言很不方便。

实现静态方法 Languages.CountLanguages(),统计数组中语言的数量。

Languages.CountLanguages(Languages.GetExistingLanguages())
// => 3

5. 检查某门语言是否在数组中

实现静态方法 Languages.HasLanguage(),检查某门语言是否存在。

Languages.HasLanguage(Languages.GetExistingLanguages(), "Elm")
// => true

6. 反转数组

某一天你发现,你的数组其实是倒序排列的!

实现静态方法 Languages.ReverseList(),反转你的数组。

Languages.ReverseList(Languages.GetExistingLanguages())
// => {"Elm", "Clojure", "C#"}

7. 检查数组是否令人兴奋

虽然你热爱所有语言,但 C# 在你心中有特殊的位置。因此,只要满足下面任意一个条件,你就会对一份语言数组感到非常兴奋:

  • 数组中的第一个是 C#。
  • 数组中的第二项是 C#,并且数组包含两门或三门语言。

实现静态方法 Languages.IsExciting(),检查一份语言数组是否令人兴奋:

Languages.IsExciting(Languages.GetExistingLanguages())
// => true

8.移除语言

请实现静态方法 Languages.RemoveLanguage(),从数组中移除指定的语言。

Languages.RemoveLanguage(Languages.GetExistingLanguages(), "Clojure")
// => { "C#", "Elm" }

9. 检查数组中的所有语言是否都唯一

请实现静态方法 Languages.IsUnique(),检查数组中是否有任何语言重复出现。

调用这个方法时,语言数组(也就是那个形参)保证不为空,数组是否被修改也没有关系。

Languages.IsUnique(Languages.GetExistingLanguages())
// => true
通过 GitHub 编辑 链接将在新窗口或新标签页中打开
C# Exercism

准备好开始 Tracks on Tracks on Tracks 了吗?

注册 Exercism,借助 62 个概念178 个练习 和真人导师指导,学习并掌握 C#,全部免费。