0

我有一个这样的对象:

public class SavedFileInfo
{
    public String Address;
    public Int32 DataPort;
    public Int32 AudioPort;
    public String Description;
    public String Filename;
}

我有一个这样的对象数组......SavedFileInfo[] mySFI;

string[] filenames我现在如何从我的对象集合中获取 Filename 字段的数组(例如) SavedFileInfo

4

3 回答 3

5

我个人会使用 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; }
}
于 2013-10-02T18:54:48.397 回答
1
String[] fileNames = new string[mySFI.Length];
for (int i = 0; i < mySFI.Length; i++)
    fileNames[i] = mySFI[i].Filename;

我可能在这里遗漏了一些东西,但是如果您真的是指“如何”做,而不是“最简单的方法是什么”(为此 - 请参阅 Skeet 的回答),那么重要的是要知道如何在非-linq 方式也是如此。如果我误解了你——我很抱歉。

于 2013-10-02T19:27:57.297 回答
0
SavedFileInfo[] mySFI;
var fileNameArr = mySFI.Select(p=>p.Filename).ToArray();
于 2013-10-02T18:54:51.793 回答