C#-对象列表-访问对象的参数

约瑟夫

我目前正在尝试创建一个简单的rpg C#游戏,并且在地图创建部分还停留得很早。

我为自己的位置创建了一个类:

public class Location
{
    private int ID;
    private string Name;
    public Location(int id, string name)
    {
        ID = id;
        Name = name;
    }
}

我还创建了一种方法,该方法将位置信息填充到列表中。在主程序区域之外,我创建了该列表,因此所有内容均可访问该列表:

List<Location> map = new List<Location>();
public void CreateMap()
    {
        Location start = new Location(1, "START");
        Location forest = new Location(2, "FOREST");
        Location city = new Location(3, "CITY");
        map.Add(start);
        map.Add(forest);
        map.Add(city);
    }
CreateMap();

但是,我现在陷入困境,因为我不知道如何访问列表中的位置对象的参数,因为我只找到了如何从Internet上的列表中访问字符串,或者我所做的非常复杂和令人困惑的答案一点都不明白。我想以某种方式使用静态类,因为我了解到它们在我们不想访问类中的信息时很有用,但是我认为我不太了解它们的概念。

tl; dr:我想从列表中删除特定对象的ID /名称,但我不知道如何。

罗伯特·麦基

更改您的Location类以使用公共属性:

public class Location
{
  public int Id {get;set;}
  public string Name {get;set;}
}

然后,您的CreateMap将如下所示:

List<Location> map = CreateMap();

public List<Location> CreateMap()
{
  return new List<Location> {
    new Location {Id=1, Name="START"},
    new Location {Id=2, Name="FOREST"},
    new Location {Id=3, Name="CITY"}
  };
}

然后,您可以像这样引用位置:

map.First(m=>m.Id==1).Name

虽然,我怀疑您会按ID进行很多查找,并且您的List很有可能是一个Dictionary或一个索引为ID的简单数组,这将使位置查找快得多。在这种情况下,您可以轻松地将其转换成这样的字典:

Dictionary<int,Location> mapDict = CreateMap.ToDictionary(k=>k.Id, v=>v);

然后,您可以通过ID来访问位置,如下所示:

var location = mapDict[1];
var name = location.Name;

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从列表框 c# 中列出的对象访问参数

来自分类Dev

c#对象列表

来自分类Dev

C#多级对象和列表访问

来自分类Dev

使用jQuery访问C#对象列表

来自分类Dev

C#对象的公共列表

来自分类Dev

C#遍历对象列表

来自分类Dev

C#对象的公共列表

来自分类Dev

C# 列表,从对象列表创建列表对象

来自分类Dev

对象寻址/访问问题中的C#列表

来自分类Dev

C#将列表对象与传递的参数进行比较

来自分类Dev

C#将列表对象与传递的参数进行比较

来自分类Dev

C#使用对象列表填充组合框并保持对象属性可访问

来自分类Dev

C#从对象列表中提取属性

来自分类Dev

从列表C#获取对象对的最佳方法

来自分类Dev

从C#中的对象列表创建组

来自分类Dev

C#中不同的对象列表

来自分类Dev

C#中对象列表的异或

来自分类Dev

在C#中显示WPF对象的列表

来自分类Dev

合并对象列表的排序实现C#

来自分类Dev

在C#中定义对象列表

来自分类Dev

列表中的C#对象相互覆盖

来自分类Dev

特定属性的C#总和对象列表

来自分类Dev

C#实体框架和对象列表

来自分类Dev

如何使用列表C#返回对象

来自分类Dev

难以在C#中定义对象列表

来自分类Dev

xmlnodelist到C#中的对象列表

来自分类Dev

在C#中将类用作列表对象

来自分类Dev

从列表元素创建C#动态对象

来自分类Dev

C#对象列表过滤(Linq?)