将值传递到通用列表C#

时间:2015-04-28 08:10:43

标签: c# generics

我试图将不同数量的字符串传递给List,而不是操纵这些字符串。 我正在尝试这样的事情,但我认为我做错了:

public static void ActivateStateFilter(List<string> lStatelist)
{
    for (int index = 0; index < lStatelist.Count; index++) // Loop with for.
    {
        lStatelist.Add(lStatelist[index]); //Add strings to the list
    }
}

这是我尝试传递值的方式:

ActivateStateFilter(new List<string> {"Active", "Inactive"});

提前致谢!

2 个答案:

答案 0 :(得分:1)

您正在添加现有项目如何在已发送列表中添加新项目。 您的代码将lStatelist与其现有项重复。

你真的想做什么?

如果您尝试在特定索引上插入字符串,请使用:

lStatelist.Insert(index, newstring);

答案 1 :(得分:1)

您的代码将抛出 OutOfmemoryException ,因为您创建了一个无限循环。 您正在将列表的项目添加到包含项目的列表中...并且您正在为列表中的每个项目执行此操作...这将创建无限循环。

我认为你正在寻找这样的东西:

public class Program
{
    private static readonly List<String> _lStateList = new List<String>();

    static void Main( String[] args )
    {
        ActivateStateFilter( new List<String> { "1", "2" } );
    }

    private static void ActivateStateFilter( IEnumerable<String> values )
    {
        _lStateList.AddRange( values );
    }
}

此代码将为_lStateList

添加一系列stirng值