获取包含该字段的对象数组中的字段数组

时间:2013-10-02 18:53:43

标签: c# .net arrays object field

我有一个这样的对象:

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

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

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

3 个答案:

答案 0 :(得分: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; }
}

答案 1 :(得分:1)

String[] fileNames = new string[mySFI.Length];
for (int i = 0; i < mySFI.Length; i++)
    fileNames[i] = mySFI[i].Filename;

我可能会在这里遗漏一些东西,但是如果你的意思是“如何”去做,而不是“最简单的方法”(为此 - 请参阅Skeet的答案)然后知道如何去做很重要也以非linq的方式。如果我误解了你 - 我道歉。

答案 2 :(得分:0)

SavedFileInfo[] mySFI;
var fileNameArr = mySFI.Select(p=>p.Filename).ToArray();