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

Mic*_*kus 0 .net c# arrays field object

我有一个像这样的对象:

public class SavedFileInfo
{
    public String Address;
    public Int32 DataPort;
    public Int32 AudioPort;
    public String Description;
    public String Filename;
}
Run Code Online (Sandbox Code Playgroud)

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

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

Jon*_*eet 5

我个人使用LINQ:

var files = mySFI.Select(x => x.Filename)
                 .ToArray();
Run Code Online (Sandbox Code Playgroud)

或者,有Array.ConvertAll:

var files = Array.ConvertAll(mySFI, x => x.Filename);
Run Code Online (Sandbox Code Playgroud)

顺便说一句,我强烈建议你使用属性而不是字段.更改代码以使用自动实现的属性非常容易:

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; }
}
Run Code Online (Sandbox Code Playgroud)

  • @MichaelMankus:从IMO开始,这是一个非常糟糕的迹象.我会非常警惕那些设计决策如此糟糕的图书馆......对于实施而言,这并不是好兆头.根据您的路径走多远,您可能想看看是否有其他选择. (2认同)