【问题标题】:C# get specific variable of list [duplicate]C#获取列表的特定变量[重复]
【发布时间】:2019-03-20 15:35:28
【问题描述】:

我创建了列表

List<Worker> list = new List<Worker>();

“工人”类中有 2 个变量:

public static int ID = 0;
public string Name;

当我创建列表时,我只想输出每个工人的名字,所以我创建了一个 for-loop

for (int i = 0; i < temp.Length; i++)
        {
            Console.WriteLine($"Worker {i+1}: {//name of worker}");
        }

但我不知道如何从列表中提取变量“名称”

【问题讨论】:

  • 也可以写一个toString方法
  • @Thecave3 为什么?这不是 Java,问题不在于如何生成字符串。这是如何访问列表中的元素
  • 你为什么有static ID?
  • 列表可以像数组一样被索引,例如temp[i]将返回第i个元素。
  • @PanagiotisKanavos C# 也有一个可以被覆盖的 to string 方法。如果你正确地建模一个类,它的签名是'public override string ToString()'。我的评论可能不在比赛范围内,没关系,但请不要将“ToString”或软件设计的每个元素与 Java 相关联。

标签: c#


【解决方案1】:

既然 Worker 有一个 Name 属性,那么您可以像这样简单地访问它:

for (int i = 0; i < temp.Length; i++)
{
     Console.WriteLine($"Worker {i+1}: {temp[i].Name}");
}

【讨论】:

    【解决方案2】:

    查询时(在您的情况下,您需要indexName)尝试使用专为查询而设计的Linq

      // When querying you can easily add conditions - Where, order - OrderBy etc.
      var query = list 
        .Select((worker, i) => $"Worker {i + 1}: {worker.Name}");
    

    然后就可以轻松打印出来了:

     foreach (item in query)
         Console.WriteLine(item);   
    

    甚至

     Console.WriteLine(string.Join(Environment.NewLine, query));    
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-06-14
      • 2013-07-28
      • 2013-04-02
      • 1970-01-01
      • 1970-01-01
      • 2013-06-15
      • 2021-02-06
      • 1970-01-01
      相关资源
      最近更新 更多