C#返回类数组中单个变量的数组

时间:2010-12-24 09:59:47

标签: c# arrays

这似乎是一个愚蠢的问题,但这是我从未找到过的答案。

如果我有一个类的数组:

public class Folder
{
    public int Id { get; set; }
    public string Name { get; set; }
}

public Folder[] folders = new Folder[] {};

有没有办法在没有循环的情况下返回所有ID实例并将它们全部收集起来?

如果没有,你认为最好的做法是什么,以便我有一个整数数组?

提前致谢,

SumGuy

P.S。如果有人能够为这个问题提出一个更合适的标题,那也是值得赞赏的

2 个答案:

答案 0 :(得分:7)

为了获得ID列表

,你必须在一段时间内循环它们

您可以通过这种方式获得一系列ID:

int[] Ids = folders.Select(f => f.Id).ToArray();

(必须使用.NET 3.5或更高版本 - 以上在内部执行循环,因此它仍在循环中)

答案 1 :(得分:2)

public class Folder 
{     
    public int Id { get; set; }     
    public string Name { get; set; } }  

    // Try to avoid exposing data structure implementations publicly
    private Folder[] _folders = new Folder[] {};  

    public IEnumerable<Folder> Folders 
    {
        get 
        {
            return this._folders;
        }
    }

    public IEnumerable<int> FolderIds 
    {
        get 
        {
            // Linq knows all
            return this._folders.Select(f => f.Id);
        }
    }
}