使用C#在List中搜索并编辑其值

时间:2012-12-30 23:46:54

标签: c#-4.0

如何使用C#在列表中搜索并编辑其值  找到有5,用9改变它的值?

List<int> myList = new List<int>() { 8, 5, 6, 2, 3 };

4 个答案:

答案 0 :(得分:1)

根据具体情况,你可以做这样的事情

myList = myList.Select(e => e.Equals(5) ? 9 : e).ToList<int>();

答案 1 :(得分:0)

出于某种原因,我想不出更好的事情:

List<int> myList = new List<int>{ 8, 5, 6, 2, 3 };
while (myList.IndexOf(5)!=-1)
{
    myList[myList.IndexOf(5)] = 9;
}

你可以将它包装在Extension方法中并像这样使用它:

myList.Replace(5, 9);

public static class ListExt
{
    public static void Replace<T>(this List<T> list, T old, T @new)
    {
        for (int index = 0; index < list.Count; index++)
        {
            if(Equals(list[index], old))
                list[index] = @new;
        }
    }
}

答案 2 :(得分:0)

你可以使用一个简单的for循环并检查当前元素的值是否等于5,如果是这样,只需将其设置为9,如下所示:

for(int i=0; i<myList.Count(); i++)
{
    if(myList[i]==5)
    {
         myList[i]=9;
    }
}

答案 3 :(得分:0)

Find the "5" element, and change it :
short d = 0;
while ((TheList[d] != 5) && ( d < TheList.Count()))
{
   d++;
}
if (d < TheList.Count())
TheList[d] = 9;