【发布时间】:2020-08-31 01:56:40
【问题描述】:
我有一个对象列表,我需要从中删除所有字符串,只剩下列表中的整数。
我遇到的问题是一些字符串只包含数字,例如“1”是一个字符串。如果我在 if 语句中使用 is if (listOfItems[i] is string) will not work on "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;
}
}
【问题讨论】:
标签: c# list if-statement testing types