Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.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# LINQ:将对象[]转换为int?[]_C#_Linq - Fatal编程技术网

C# LINQ:将对象[]转换为int?[]

C# LINQ:将对象[]转换为int?[],c#,linq,C#,Linq,我有一个方法,它的一个参数是一个对象数组,例如object[]data。 所以我想使用LINQ将其转换为int?数组,如何实现这一点。 我只需要跳过对象数组中的第一个元素 例如,类似这样的内容,它不是在编译: int?[] newData = data.Skip(1).Take(data.Length-1).ToArray<int?>(); 谢谢 我认为您不需要Takedata。长度-1 看来 int?[] newData = data.Skip(1).Cast<int?&g

我有一个方法,它的一个参数是一个对象数组,例如object[]data。 所以我想使用LINQ将其转换为int?数组,如何实现这一点。 我只需要跳过对象数组中的第一个元素

例如,类似这样的内容,它不是在编译:

int?[] newData = data.Skip(1).Take(data.Length-1).ToArray<int?>();
谢谢

我认为您不需要Takedata。长度-1

看来

int?[] newData = data.Skip(1).Cast<int?>().ToArray();
除了第一个元素,所有元素都足够了。

我认为您不需要Takedata。长度-1

看来

int?[] newData = data.Skip(1).Cast<int?>().ToArray();

除第一种方法外,所有元素都已足够。

您可以使用以下两种方法之一:

Cast<int?>
OfType<int?>
如果其中一个元素不是int?,则强制转换将失败?。OfType返回只包含int类型元素的IEnumerable?来自上一个数组

那么,如果数组包含int类型的元素?不包括第一个元素,您可以使用

int? [] newData = data.OfType<int?>().ToArray();

您可以使用以下两种方法之一:

Cast<int?>
OfType<int?>
如果其中一个元素不是int?,则强制转换将失败?。OfType返回只包含int类型元素的IEnumerable?来自上一个数组

那么,如果数组包含int类型的元素?不包括第一个元素,您可以使用

int? [] newData = data.OfType<int?>().ToArray();

此外,如果只需要读取访问输出:考虑将其作为iNeXDIABLE,而不是执行ToalStudio。如果所提取的条目例如简单地在FraceAccess中使用,那么在DATA.SKIP1.CAST中使用VAR项{/*对每个项*/}做一些事情,然后创建一个数组对象是浪费的。IdEnabess相当于此。如果只需要对输出进行读访问:考虑将其保留为iNeXDIABLE,而不是执行ToalStudio。如果所提取的项例如仅在FraceAccess中使用,那么在DATA.SKIP1.CAST中使用VAR项{/*对每个项*/}做一些事情。那么创建数组对象是浪费时间的。对于这一点,IEnumerable已经足够了。