如何解决如何测试对象是否为字符串?
我有一个对象列表,我需要从中删除所有字符串,而列表中只剩下整数。
我遇到的问题是某些字符串仅包含数字,例如“ 1”是字符串。如果我在if语句中使用if (listofItems[i] is string)
在“ 1”上不起作用,我也尝试过GetType()
和typeof
,如下所示,但是我遇到了同样的问题。>
如何测试对象是否为字符串,即使该字符串包含数字?
public static class Filter
{
public static IEnumerable<int> GetIntegersFromList(List<object> listofItems)
{
for (int i = 0; i < listofItems.Count; i++)
{
if (listofItems[i].GetType() != typeof(int))
listofItems.RemoveAt(i);
}
List<int> listofInts = new List<int>();
for (int i = 0; i < listofItems.Count; i++)
{
listofInts.Add((int)listofItems[i]);
}
return listofInts;
}
}
解决方法
不管其他问题如何,您都可以使用OfType
来过滤实际上装在int
中的所有对象
根据指定的类型过滤IEnumerable的元素。
var ints = listOfItems.OfType<int>().ToList();
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。