C# 在列表中使用两种不同的字符串类型

C# 在列表中使用两种不同的字符串类型,c#,C#,好的,我正在为我的C#programming课程制作一个冒险游戏。我想我知道怎么做,但我在建立“世界”时遇到了麻烦 我有一个世界课程(world.cs),我开始为每个房间创建一个列表。但是,我不知道如何为每个房间添加名称和描述 例如,如果列表(房间)的类型为字符串,我会选择房间。添加(“监狱”,“这是监狱)。 做这件事的最佳方法是什么?这就是创建类的时候 public class Room { public string Name { get; set; } public strin

好的,我正在为我的C#programming课程制作一个冒险游戏。我想我知道怎么做,但我在建立“世界”时遇到了麻烦

我有一个世界课程(
world.cs
),我开始为每个房间创建一个列表。但是,我不知道如何为每个房间添加名称和描述

例如,如果
列表
(房间)的类型为
字符串
,我会选择
房间。添加(“监狱”,“这是监狱)

做这件事的最佳方法是什么?

这就是创建类的时候

public class Room {
   public string Name { get; set; }
   public string Description { get; set; }
}
并保存一份房间列表:

List<Room> rooms = new List<Room>();

对象用于将数据分组在一起,这将允许编写更简洁的代码。这是面向对象编程的关键之一。

您可以做的最好的事情就是创建一个类

public class Room
{
    public string Name { get; set; }
    public string Description { get; set; }
}
然后您可以创建
房间的列表

List<Room> rooms = new List<Room>();

从这一点开始,我将谈论存在的事情,但这不一定是最好的事情

您可以创建这样的扩展方法

public static class ListRoomExtender
{
    public static void Add(this List<Room> rooms, string name, string description)
    {
        rooms.Add(new Room { Name = name, Description = description });
    }
}
其他类型的“名单”
    • 如果需要,您不能存储更多信息,只能存储一对字符串
    • 您没有语义,可以通过属性
      访问数据
    • 不能使用同一密钥添加两个项目
    • 如果需要,您不能存储更多信息,只能存储一对字符串
    • 您没有语义,可以通过属性
      访问数据

Ohhhhh我缺少对象部分,太棒了。所以为房间中的项目创建一个列表也是一样的,对吗?@user3064291:是的。创建一个类
Item
,保存它们的属性。有些人可能会建议你使用
结构,因为它现在只保存了几个字段。虽然正确,我想你最好现在只上几节课,作为一个提醒。
Room room = new Room { Name = "", Description = "" };
rooms.Add(room);
public static class ListRoomExtender
{
    public static void Add(this List<Room> rooms, string name, string description)
    {
        rooms.Add(new Room { Name = name, Description = description });
    }
}
List<Room> rooms = new List<Room>();
rooms.Add("Room name", "Room description");