C# 如何从字符串类型数组中删除整数?

C# 如何从字符串类型数组中删除整数?,c#,asp.net,arrays,C#,Asp.net,Arrays,我有一个字符串类型的数组,它包含数字和字符,例如 string[]TagsSeperatedArray={tag1,tag21234,}我想从数组中删除1234和。 我怎样才能做到这一点。谁能帮帮我吗。我正在使用asp.NETC foreach(var item in TagsSeperatedArray) { if() { }

我有一个字符串类型的数组,它包含数字和字符,例如 string[]TagsSeperatedArray={tag1,tag21234,}我想从数组中删除1234和。 我怎样才能做到这一点。谁能帮帮我吗。我正在使用asp.NETC

foreach(var item in TagsSeperatedArray)
                {
                    if()
                    {

                    }

                }

您可以使用Linq进行此操作,例如:

TagsSeparatedArray.Where(item => !int.TryParse(item, out int _))

这将排除那些可以转换为int的对象。

您可以使用Linq,例如:

TagsSeparatedArray.Where(item => !int.TryParse(item, out int _))

这将排除那些可以转换为int的对象。

一种方法是:

var arr=new[]{tag1,tag2,1234,}; Console.WriteLinestring.Join,,arr;//tag1,Tag21234, var newArr=arr.Wherevalue=>!string.IsNullOrWhiteSpacevalue && !int.TRIPARSEVALUE,out u2; ToArray; Console.WriteLinestring.Join,,newArr;//tag1,tag2 但是请注意,这会分配一个额外的数组等;使用列表会更有效,因为您可以直接删除:

var list=新列表{tag1,tag2,1234,}; Console.WriteLinestring.Join、、list;//tag1,Tag21234, list.RemoveAllvalue=>string.IsNullOrWhiteSpacevalue | | | int.TryParsevalue,out |; Console.WriteLinestring.Join、、list;//tag1,tag2
一种方法是:

var arr=new[]{tag1,tag2,1234,}; Console.WriteLinestring.Join,,arr;//tag1,Tag21234, var newArr=arr.Wherevalue=>!string.IsNullOrWhiteSpacevalue && !int.TRIPARSEVALUE,out u2; ToArray; Console.WriteLinestring.Join,,newArr;//tag1,tag2 但是请注意,这会分配一个额外的数组等;使用列表会更有效,因为您可以直接删除:

var list=新列表{tag1,tag2,1234,}; Console.WriteLinestring.Join、、list;//tag1,Tag21234, list.RemoveAllvalue=>string.IsNullOrWhiteSpacevalue | | | int.TryParsevalue,out |; Console.WriteLinestring.Join、、list;//tag1,tag2
基于@Marc Grawell的答案

    private string[] RemoveNumerics(string[] TheArray)
    {
        List<string> list = new List<string>();
        list.AddRange(TheArray);
        list.RemoveAll(value => string.IsNullOrWhiteSpace(value) || int.TryParse(value, out _));
        return list.ToArray();
    }

干杯

基于@Marc Grawell的回答

    private string[] RemoveNumerics(string[] TheArray)
    {
        List<string> list = new List<string>();
        list.AddRange(TheArray);
        list.RemoveAll(value => string.IsNullOrWhiteSpace(value) || int.TryParse(value, out _));
        return list.ToArray();
    }

干杯

不能从数组中删除元素,因为不能更改大小。您可以改为将元素设置为null-这对您来说足够了吗?我想,如果您一直关注的是检测数字字符串,那么您应该看看Int32.TryParse;您可以替换值,也可以使用较少的值创建新数组;如果有一个列表,这会更容易-可能吗?您可以从列表中删除已打开,因为这不是关于删除字符串的数字部分。@JonSkeet是的,您可能是对的。这回答了您的问题吗?无法从数组中删除元素,因为无法更改大小。您可以改为将元素设置为null-这对您来说足够了吗?我想,如果您一直关注的是检测数字字符串,那么您应该看看Int32.TryParse;您可以替换值,也可以使用较少的值创建新数组;如果有一个列表,这会更容易-可能吗?您可以从列表中删除已打开,因为这不是关于删除字符串的数字部分。@JonSkeet是的,您可能是对的。这回答了您的问题吗?没有lambda的替换项将由于在枚举集合时修改集合而引发异常。没有lambda的替换项将由于在枚举集合时修改集合而引发异常。