【问题标题】:add values in string array on runtime c#在运行时 c# 在字符串数组中添加值
【发布时间】:2020-04-30 08:53:54
【问题描述】:

我在运行时得到这样的字符串数组

    string[] array1 = {"5", "4", "2"};

数组中的值是在运行时根据来自

的复选框选择添加的

屏幕(注意:我在屏幕上有 7 个复选框)

如果我选中 3 个复选框,那么 array1 中将添加 3 个值,但我想添加

数组末尾的零在数组中剩余的 4 个位置,如下所示:

 string[] array1 = {"5", "4", "2","0" ,"0","0" , "0"};

在运行时只是为了修复数组中的所有 7 个位置...我该怎么办??

【问题讨论】:

  • 您的问题令人困惑。您收到一个包含 3 个值的数组。然后,如果选中三个复选框,则添加 3 个值?哪三个值?您拥有与开始时完全相同的值,并且您只是简单地添加零......
  • 值将根据一些计算添加我只想在未选中的复选框位置添加零
  • 位置有意义吗?如果未选中 checkbox2,则应在索引 2 处添加 0,或者您只是想将 0 附加到数组的末尾,直到总数量为 7?
  • 只在数组末尾追加

标签: c# arrays string


【解决方案1】:

我不明白你的要求的用法。但是您可以使用以下代码将数组填充为“0”:

List<string> list = array1.ToList();
for (int i = array1.Length; i < 7; i++)
{
    list.Add("0");
}
array1 = list.ToArray();

【讨论】:

    【解决方案2】:

    您可以执行以下操作:

    const int paddedSize = 7;
    var newArray = array1.Concat(Enumerable.Repeat("0", paddedSize - array1.Length)).ToArray();
    

    但也许你不使用Linq 会更好地理解它;您要使用的类型是 List&lt;string&gt; 可以动态调整大小,数组不能。为了从数组中获取列表,您可以使用 linq 扩展:

    var resized = array1.ToList();
    

    或者

    var resized = new List<string>(array1);
    

    现在您只需添加 0s 直到项目总数为 7:

    while (resized.Count < paddedSize)
        resized.Add("0");
    

    然后返回数组:

    var newArray = resized.ToArray();
    

    【讨论】:

    • 在列表的帮助下添加了零...感谢您的时间
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-25
    • 2011-04-03
    • 1970-01-01
    • 2023-01-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多