我可以在空的arraylist索引上替换或放置一个新字符串吗

Posted

技术标签:

【中文标题】我可以在空的arraylist索引上替换或放置一个新字符串吗【英文标题】:Can I replace or put a new string on a empty array list index 【发布时间】:2021-10-10 08:54:46 【问题描述】:

所以我想知道是否有办法将字符串添加到数组列表中的空索引或空索引。 所以我想要的是,如果数组列表索引为 null 或为空,那么我希望它被另一个文本替换。

string[] namelist = new string[4]  "dodo", "klee", "diluc", null ;
for (int i = 0; i < namelist.Count(); i++)

    if (namelist[i] == null)
    
        *Replace Null Text*
    
    else
        Console.WriteLine("Taken");

谢谢。

【问题讨论】:

namelist[i] = "Whatever text you like" 另外,使用namelist.Length 而不是namelist.Count() -- 稍微便宜一些 这能回答你的问题吗? How do I replace an item in a string array? 这个问题基本上是:如何更新数组,这是所有教程都涵盖的基本主题。 @canton7: 使用LengthCount() 并不重要。这个方法只被调用一次,它检查源是否实现ICollection&lt;T&gt;,这对于数组是正确的,所以它使用数组Count property(是的,数组有它,它只是使用@987654330 @) 而不是枚举它。 【参考方案1】:

您使用的是数组,因此 Count() 不适用,但它适用于像 List 这样的集合类型。

    string[] namelist = new string[4]  "dodo", "klee", "diluc", null ;
    for (int i = 0; i < namelist.Length; i++)
    
        if (string.IsNullOrEmpty(namelist[i]))
        
            namelist[i] = "filled";
        
        else
            Console.WriteLine("Taken");
    

【讨论】:

Enumerable.Count() 适用于数组,以及任何其他 IEnumerable&lt;T&gt;。这里的效率略低,但仍然有效。【参考方案2】:

有时最好不要修改数组,而是创建一个新数组。

这是最简单的方法:

namelist = namelist.Select(x => x ?? "*Replace Null Text*").ToArray();

【讨论】:

以上是关于我可以在空的arraylist索引上替换或放置一个新字符串吗的主要内容,如果未能解决你的问题,请参考以下文章

在空arraylist中存储用户输入

如何在空的edittext上更改材质TextInputLayout提示颜色?

在空的剑道网格上排序显示旧数据

为啥 ToPagedList 在空的 IQueryable 上需要半分钟,而底层 SQL 只需一秒钟?

是否在空的初始化程序列表(并明确指定类型)上调用 std::min 未定义的行为?

如何将网格线保留在空的 TableView Javafx 中