用文本指向类的类填充列表

本文关键字:列表 填充 文本 | 更新日期: 2023-09-27 18:09:01

如何减少此文件赋值,以便进行单个赋值?

x是一个匿名列表。

x => List {String name, int x, int y}

和List_tiles

_tiles.AddRange(from tile in x
where tile.Type.ToLower() == "start".ToLower()
select new Start(this)
{
Position = new Vector2(tile.X, tile.Y),
Texture = _texture2D
});
_tiles.AddRange(from tile in x
where tile.Type.ToLower() == "One".ToLower()
select new OneTouch(this)
{
Position = new Vector2(tile.X, tile.Y),
Texture = _texture2D
});

_tiles.AddRange(from tile in x
where tile.Type.ToLower() == "Two".ToLower()
select new ReverseTouch(this)
{
Position = new Vector2(tile.X, tile.Y),
Texture = _texture2D

用文本指向类的类填充列表

IEnumerable<Tile> tiles = x.Select(tile =>
{
  Tile currentTile = null;
  switch (tile.Type.ToLower())
  {
    case "start":
      currentTile = new Start(this);
      break;
    case "One":
      currentTile = new OneTouch(this);
      break;
    case "Two":
      currentTile = new Start(this)
      break;
    ...
    default:
      // You know what to do...
   }
   currentTile.Position = new Vector2(tile.X, tile.Y),
   currentTile.Texture = _texture2D
   return currentTile;
});

在此基础上,您可以使用tiles.ToList()构建列表或使用_tiles.AddRange(tiles); 填充现有