Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#返回类数组中单个变量的数组_C#_Arrays - Fatal编程技术网

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

C#返回类数组中单个变量的数组,c#,arrays,C#,Arrays,这似乎是一个愚蠢的问题,但我从未找到答案 如果我有一个类的数组: public class Folder { public int Id { get; set; } public string Name { get; set; } } public Folder[] folders = new Folder[] {}; 有没有一种方法可以返回ID的所有实例,而不必循环并收集它们 如果没有,那么你认为什么是最好的方法,这样我就有了整数数组? 提前感谢, 萨姆盖伊 p、 如果有人

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

如果我有一个类的数组:

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

public Folder[] folders = new Folder[] {};
有没有一种方法可以返回ID的所有实例,而不必循环并收集它们

如果没有,那么你认为什么是最好的方法,这样我就有了整数数组?

提前感谢,

萨姆盖伊


p、 如果有人能为这个问题想出一个更合适的标题,你也会很感激的,你将不得不在一段时间内循环浏览这些标题,以获得ID列表

您可以通过以下方式获取ID数组:

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

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

您必须在一段时间内循环使用它们才能获得ID列表

您可以通过以下方式获取ID数组:

int[] Ids = folders.Select(f => f.Id).ToArray();
(必须使用.NET 3.5或更高版本-以上版本在内部执行循环,因此仍在循环)

公共类文件夹
{     
公共int Id{get;set;}
公共字符串名称{get;set;}}
//尽量避免公开数据结构实现
私有文件夹[]_folders=新文件夹[]{};
公用IEnumerable文件夹
{
得到
{
返回此文件夹。\u;
}
}
公共可数文件夹
{
得到
{
//林克无所不知
返回此文件夹。选择(f=>f.Id);
}
}
}
公共类文件夹
{     
公共int Id{get;set;}
公共字符串名称{get;set;}}
//尽量避免公开数据结构实现
私有文件夹[]_folders=新文件夹[]{};
公用IEnumerable文件夹
{
得到
{
返回此文件夹。\u;
}
}
公共可数文件夹
{
得到
{
//林克无所不知
返回此文件夹。选择(f=>f.Id);
}
}
}

+1对于“上面的代码在内部执行循环,所以它仍然在循环”这是一个很好的观点,在某个地方一定有一个循环,但我认为出于OPs的目的,他试图避免自己编写循环,这满足了这一点。Linq基本上是很棒的:)+1表示“上面的循环在内部执行,所以它仍然是循环的”这是一个很好的观点,在某个地方一定有一个循环,但我认为出于OPs的目的,他试图避免编写循环himnself,这满足了这一点。Linq基本上是很棒的:)我认为有一点很重要,那就是当迭代返回的IEnumerable时,文件夹数组的实际遍历就会发生,而每次迭代IEnumerable时都会发生这种情况。这可能会产生一些后果,具体取决于您的应用程序。在某些情况下,您可能希望在表达式的末尾添加一个额外的ToArray()。我认为需要指出的是,对文件夹数组的实际遍历发生在对返回的IEnumerable进行迭代时,并且每次对IEnumerable进行迭代时都会发生。这可能会产生一些后果,具体取决于您的应用程序。在某些情况下,您可能希望在表达式的末尾添加一个额外的ToArray()。