如何解决如何用循环仅求和C#对象列表中的整数元素?
请考虑以下内容:
static void Main(string[] args)
{
List<object> someList = new List<object>();
someList.Add(1);
someList.Add(2);
someList.Add("apple");
someList.Add(true);
someList.Add(3);
}
尚未使用数据类型定义列表项,列表项包含布尔值,字符串和整数。假设还有更多不同数据类型的列表项,如何使用简单循环或if语句仅求和对象列表中的整数(例如1、2和3)?我才刚开始使用C#,谢谢!
搜索后,我尝试过类似的操作,但没有成功:
if(!someList.Contains(int))
List.Add(int);
解决方法
如果您知道它们被装在int
中,则可以使用OfType
和Sum
var result = someList.OfType<int>().Sum();
或者对于任何可以表示为int
且可以转换为字符串表示形式的内容,可以将Sum
与ToString
和int.TryParse
var result = someList.Sum(x => int.TryParse(x.ToString(),out var value) ? value : 0);
或者如果您喜欢循环
var result = 0;
foreach (var value in someList.OfType<int>())
result += value;
// or
var result = 0;
foreach (var item in someList)
if (int.TryParse(item.ToString(),out var value))
result += value;
其他资源
Enumerable.OfType(IEnumerable) Method
根据指定的类型过滤IEnumerable的元素。
计算一系列数值的总和。
将数字的字符串表示形式转换为其32位带符号 等价的整数。返回值指示操作是否 成功。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。