【问题标题】:How to store values in an ArrayList dynamically如何动态地将值存储在 ArrayList 中
【发布时间】:2011-12-09 05:12:56
【问题描述】:

这是一个非常基本或相当简单的问题。 在我的代码中,我使用 foreach 值将值放入字符串变量中。 对于每次迭代,我都想在数组列表中存储(一个接一个地添加)该变量值。然后通过其索引检索数组列表值。

我正在尝试的代码:

foreach(string abc in namestring)
{
   string values = abc;
   ArrayList list = new ArrayList();
   list.Add(values);
}

例如:

如果 'namestring' 包含像 tom、dik、harry 这样的值。那么'list'应该 将这些值包含为 list(0) = tom, list(1) = dik, list(2) = 哈利。

问题在于将值存储在数组列表中

【问题讨论】:

  • 你的问题毫无意义。什么是编辑器值?究竟是什么问题? list.Add() 应该可以很好地添加字符串。虽然我会推荐使用通用 List 来代替。
  • 只是好奇:为什么在abc 上使用.ToString(),而它已经被定义为string
  • 我很难理解您的问题,您能否详细说明一下?您不必在 abc 上使用 toString()。已经是字符串了。
  • @GAZ、EBB、MARTHIN:对错误表示抱歉。我已经编辑了这个问题。感谢您的关注和通知。

标签: c# asp.net arraylist


【解决方案1】:

可以修复代码,将“new ArrayList()”行移到 foreach 之外。

无论如何...

如果 'namestring' 包含像 tom、dik、harry 这样的值。那么'list'应该 将这些值包含为 list(0) = tom, list(1) = dik, list(2) = harry

namestring 已经包含那些,如 namestring[0] = tom 等,所以你可以按原样使用它。

【讨论】:

  • 亚历克斯谢谢。通过将 arraylist 声明放在 foreach 循环之外,我理解了解决方案。
【解决方案2】:
var list = new ArrayList();
foreach(string abc in namestring)
{           
    list.Add(abc);
}

【讨论】:

    【解决方案3】:

    看起来您的名称字符串已经是一个集合(实现 ICollection)...如果是这样,您可以在没有循环的情况下完成。

            ArrayList list = new ArrayList();
            list.AddRange(namestring);
            return list;
    

            List<string> list = new List<string>();
            list.AddRange(namestring);
            return list;
    

    或者,简单地使用构造函数

            ArrayList list = new ArrayList(namestring); 
    

            List<string> list = new List<string>(namestring);
    

    【讨论】:

    • DKNAAK- thnx 非常关心为许多其他有效的替代方案提供照明。我的解决方案是在 foreach 循环上方声明数组列表。
    【解决方案4】:

    您可能希望在foreach 循环之前创建您的列表。 Atm 您正在集合新列表中创建 foreach 字符串,然后忘记了它的引用。

    【讨论】:

    • @Aug:是的。在 foreach 循环上方声明 arraylist 是正确的。寻求帮助。是的,再次解释原因。这是下次避免这个错误所必需的。
    【解决方案5】:

    你必须在循环外声明你的ArrayList

    ArrayList list = new ArrayList();
    foreach(string abc in namestring)
    {
       list.Add(abc);
    }
    

    此外,如果您使用的是 .NET 2.0 及更高版本,则应改用强类型 List&lt;string&gt;

    List<string> list = new List<string>();
    

    【讨论】:

    • 你也应该考虑使用 List 而不是 ArrayList
    • @Broken Glass:非常感谢这个解决方案。在 foreach 循环上方声明 arraylist,让我的方式清晰。
    【解决方案6】:

    在 foreach 上方声明 ArrayList list = new ArrayList();

    【讨论】:

    • Aap sahi ho dost。只需在 foreach 循环上方声明 arraylist 即可。选择的答案不能超过 1 个,否则你也会参加。
    猜你喜欢
    • 1970-01-01
    • 2022-01-10
    • 1970-01-01
    • 2015-11-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-22
    相关资源
    最近更新 更多