微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何测试对象是否为字符串?

如何解决如何测试对象是否为字符串?

我有一个对象列表,我需要从中删除所有字符串,而列表中只剩下整数。

我遇到的问题是某些字符串仅包含数字,例如“ 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 举报,一经查实,本站将立刻删除。