我有一个对象数组
object[] arr=new object[]
{
"Kushan", // Index = 0 ( data Type is String)
10, // Index = 1 ( data Type is double)
15, // Index = 2 ( data Type is double)
25, // Index = 3 ( data Type is double)
"yytdhj" // Index = 4 ( data Type is String)
35, // Index = 5 ( data Type is double)
88, // Index = 6 ( data Type is double)
65, // Index = 7 ( data Type is double)
98, // Index = 8 ( data Type is double)
"Address" // Index = 9 ( data Type is String)
};
我想把索引1,2,3,5,6,7,8中的元素之和 使用linq可以做到这一点吗?如果可能的话怎么样?
,P:S:
很抱歉让你误解,我真的想用特定的索引来获取金额。不看数据类型。
答案 0 :(得分:4)
在这种情况下,您将所有double
值一起添加。如果那是你真正想要的,你可以使用:
var sum = arr.OfType<double>().Sum();
否则,如果确实需要使用索引,则需要以下内容:
var sum = indexes.Select(x => (double) arr[x])
.Sum();
(假设你在某种集合中有索引。)
答案 1 :(得分:3)
在您提供的示例中,示例的数据类型为infact int,而不是double。 这是一个使用OfType()的完整工作示例。
object[] arr=new object[]
{
"Kushan", // Index = 0 ( data Type is String)
10D, // Index = 1 ( data Type is double)
15D, // Index = 2 ( data Type is double)
25D, // Index = 3 ( data Type is double)
"yytdhj", // Index = 4 ( data Type is String)
35D, // Index = 5 ( data Type is double)
88D, // Index = 6 ( data Type is double)
65D, // Index = 7 ( data Type is double)
98D, // Index = 8 ( data Type is double)
"Address" // Index = 9 ( data Type is String)
};
var sum = arr.OfType<double>().Sum();