【问题标题】:Join all properties of an object into delimited string [duplicate]将对象的所有属性加入分隔字符串[重复]
【发布时间】:2019-01-08 08:23:28
【问题描述】:

我有这样的课

class Car
{
   public string carname{get;set;}
   public int id{get;set};
   public string mdate{get;set;}
}

我有一个汽车列表,我需要将汽车的每个属性作为分隔字符串写入文件

List<Car> cars =new List<Car>();

现在正在使用如下循环实现它

foreach(car c in cars)
{
    string s=c.carname + "," + c.id + "," + c.mdate;
    f.writeline(s);
}

但是,如果属性的数量很大,则很难做到这一点。那么有没有什么简单的方法可以实现上述目标。像 linq 或任何其他方式..

还有什么方法可以指定 CSV 中列的顺序

【问题讨论】:

  • var data = cars.Select(x =&gt; string.Format("{0},{1},{2}",x.carname,x.id,x.mdate)).ToList();

标签: c#


【解决方案1】:

使用反射,您可以获得类的属性定义列表,然后您可以遍历属性并获取值。这可能会为您提供一种从大量属性列表中动态生成列表的方法。

这是另一个 Stack Overflow 问题,它以不同的方式提出问题,您的问题可能与原来的问题重复。

How can you loop over the properties of a class?

【讨论】:

  • 这不是返回了很多未在类中定义的属性并造成无用信息的混乱吗?
  • 为什么需要反思
  • @Rahul 最初的问题是关于一个具有大量属性并且必须为每个属性编码的对象。反射将允许他们生成列表,而无需为每个属性进行预编码。
猜你喜欢
  • 2017-10-29
  • 1970-01-01
  • 2023-04-09
  • 1970-01-01
  • 2020-01-15
  • 2021-06-26
  • 1970-01-01
  • 1970-01-01
  • 2021-12-14
相关资源
最近更新 更多