91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

集合C#案例分析咋做

c#
小樊
82
2024-10-18 17:32:46
欄目: 編程語言

集合(Collection)是C#中非常核心且重要的概念,它們用于存儲和管理多個相同類型的對象。當你需要處理一組對象,并且這些對象有共同的屬性和方法時,集合就是一個非常有用的工具。下面是一個關于集合的C#案例分析,包括需求分析、設計、實現和測試四個部分。

需求分析

假設你正在開發一個學生管理系統,需要存儲和管理學生的信息。每個學生有姓名、年齡、性別和成績等屬性。你需要實現以下功能:

  1. 添加學生信息。
  2. 刪除學生信息。
  3. 查詢學生信息。
  4. 修改學生信息。

設計

根據需求分析,我們可以選擇合適的集合類型來存儲學生信息。在C#中,常用的集合類型有:

  • List:有序集合,可以包含重復元素。
  • HashSet:無序集合,不包含重復元素。
  • Dictionary<TKey, TValue>:鍵值對集合,其中鍵是唯一的。

在這個案例中,我們可以使用List來存儲學生信息,因為我們需要按照學生的姓名或者學號進行查詢,而List提供了方便的索引器(Indexer)來實現這一點。

首先,定義一個Student類來表示學生信息:

public class Student
{
    public string Name { get; set; }
    public int Age { get; set; }
    public string Gender { get; set; }
    public double Score { get; set; }
}

然后,我們可以創建一個StudentManager類來管理學生信息:

public class StudentManager
{
    private List<Student> students;

    public StudentManager()
    {
        students = new List<Student>();
    }

    // 添加學生信息
    public void AddStudent(Student student)
    {
        students.Add(student);
    }

    // 刪除學生信息
    public void RemoveStudent(string name)
    {
        students.Remove(student => student.Name == name);
    }

    // 查詢學生信息
    public Student GetStudentByName(string name)
    {
        return students.FirstOrDefault(student => student.Name == name);
    }

    // 修改學生信息
    public void UpdateStudent(Student student)
    {
        var existingStudent = students.FirstOrDefault(s => s.Name == student.Name);
        if (existingStudent != null)
        {
            existingStudent.Age = student.Age;
            existingStudent.Gender = student.Gender;
            existingStudent.Score = student.Score;
        }
    }
}

實現

現在我們已經完成了Student類和StudentManager類的設計,接下來我們可以編寫一個簡單的控制臺應用程序來實現這些功能:

class Program
{
    static void Main(string[] args)
    {
        StudentManager studentManager = new StudentManager();

        // 添加學生信息
        studentManager.AddStudent(new Student { Name = "張三", Age = 20, Gender = "男", Score = 90 });
        studentManager.AddStudent(new Student { Name = "李四", Age = 21, Gender = "女", Score = 85 });
        studentManager.AddStudent(new Student { Name = "王五", Age = 19, Gender = "男", Score = 88 });

        // 查詢學生信息
        Console.WriteLine("查詢張三的信息:");
        Student zhangSan = studentManager.GetStudentByName("張三");
        Console.WriteLine($"姓名:{zhangSan.Name},年齡:{zhangSan.Age},性別:{zhangSan.Gender},成績:{zhangSan.Score}");

        // 修改學生信息
        zhangSan.Score = 95;
        studentManager.UpdateStudent(zhangSan);
        Console.WriteLine("更新后的張三信息:");
        Console.WriteLine($"姓名:{zhangSan.Name},年齡:{zhangSan.Age},性別:{zhangSan.Gender},成績:{zhangSan.Score}");

        // 刪除學生信息
        studentManager.RemoveStudent("李四");
        Console.WriteLine("刪除后的學生列表:");
        foreach (var student in studentManager.students)
        {
            Console.WriteLine($"姓名:{student.Name},年齡:{student.Age},性別:{student.Gender},成績:{student.Score}");
        }
    }
}

測試

在上面的控制臺應用程序中,我們已經實現了一些基本的集合操作功能。為了確保這些功能的正確性,我們可以編寫一些單元測試來驗證它們的行為是否符合預期。

使用NUnit或xUnit等測試框架,我們可以編寫如下測試用例:

[TestFixture]
public class StudentManagerTests
{
    [Test]
    public void AddStudent_ShouldAddStudentToTheList()
    {
        var studentManager = new StudentManager();
        var student = new Student { Name = "趙六", Age = 22, Gender = "女", Score = 92 };
        studentManager.AddStudent(student);

        Assert.Contains(student, studentManager.students);
    }

    [Test]
    public void RemoveStudent_ShouldRemoveStudentByName()
    {
        var studentManager = new StudentManager();
        studentManager.AddStudent(new Student { Name = "趙六", Age = 22, Gender = "女", Score = 92 });
        studentManager.AddStudent(new Student { Name = "張三", Age = 20, Gender = "男", Score = 90 });

        studentManager.RemoveStudent("張三");

        Assert.DoesNotContain(studentManager.students, s => s.Name == "張三");
    }

    [Test]
    public void GetStudentByName_ShouldReturnNullIfStudentNotFound()
    {
        var studentManager = new StudentManager();
        Assert.IsNull(studentManager.GetStudentByName("不存在"));
    }

    [Test]
    public void UpdateStudent_ShouldUpdateStudentInfo()
    {
        var studentManager = new StudentManager();
        studentManager.AddStudent(new Student { Name = "趙六", Age = 22, Gender = "女", Score = 92 });

        var updatedStudent = new Student { Name = "趙六", Age = 23, Gender = "女", Score = 95 };
        studentManager.UpdateStudent(updatedStudent);

        Assert.AreEqual(updatedStudent.Score, studentManager.GetStudentByName("趙六")?.Score);
    }
}

通過編寫這些測試用例,我們可以確保StudentManager類的集合操作功能是正確的。當然,這只是一個簡單的例子,實際項目中可能需要編寫更多的測試用例來覆蓋更多的邊界情況和異常情況。

0
聂拉木县| 杂多县| 大田县| 邢台县| 平顺县| 元氏县| 老河口市| 梨树县| 临洮县| 集贤县| 荥阳市| 青田县| 叙永县| 房山区| 洛阳市| 潞西市| 英吉沙县| 平湖市| 同仁县| 星座| 广丰县| 乐陵市| 宁明县| 开阳县| 澄迈县| 鄂托克前旗| 舒城县| 佳木斯市| 民和| 靖边县| 彰化市| 泽普县| 四会市| 化德县| 华阴市| 淮安市| 阜南县| 什邡市| 葫芦岛市| 铅山县| 华容县|