获取包含该字段的对象数组中的字段数组
本文关键字:数组 字段 包含该 对象 获取 | 更新日期: 2023-09-27 18:33:34
我有一个这样的对象:
public class SavedFileInfo
{
public String Address;
public Int32 DataPort;
public Int32 AudioPort;
public String Description;
public String Filename;
}
我有这样一系列这样的对象... SavedFileInfo[] mySFI;
现在如何从我的SavedFileInfo
对象集合中获取文件名字段的数组(例如string[] filenames
)?
我个人会使用 LINQ:
var files = mySFI.Select(x => x.Filename)
.ToArray();
或者,有Array.ConvertAll
:
var files = Array.ConvertAll(mySFI, x => x.Filename);
顺便说一句,我强烈建议您使用属性而不是字段。更改代码以使用自动实现的属性非常容易:
public class SavedFileInfo
{
public String Address { get; set; }
public Int32 DataPort { get; set; }
public Int32 AudioPort { get; set; }
public String Description { get; set; }
public String Filename { get; set; }
}
String[] fileNames = new string[mySFI.Length];
for (int i = 0; i < mySFI.Length; i++)
fileNames[i] = mySFI[i].Filename;
我可能在这里遗漏了一些东西,但如果你真的是指"如何"做到这一点,而不是"最简单的方法是什么"(为此 - 参见 Skeet 的答案),那么知道如何以非 linq 的方式做到这一点也很重要。如果我误解了你 - 我很抱歉。
SavedFileInfo[] mySFI;
var fileNameArr = mySFI.Select(p=>p.Filename).ToArray();