C# でリストを検索し、その値を編集して 5 を見つけ、その値を 9 で変更する方法は?
List<int> myList = new List<int>() { 8, 5, 6, 2, 3 };
C# でリストを検索し、その値を編集して 5 を見つけ、その値を 9 で変更する方法は?
List<int> myList = new List<int>() { 8, 5, 6, 2, 3 };
状況に応じて、次のようなことを行うことができます
myList = myList.Select(e => e.Equals(5) ? 9 : e).ToList<int>();
どういうわけか私はこれ以上良いことは考えられませんでした:
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;
}
}
}
単純なforループを使用して、現在の要素の値が5に等しいかどうかを確認し、等しい場合は、次のように9に設定します。
for(int i=0; i<myList.Count(); i++)
{
if(myList[i]==5)
{
myList[i]=9;
}
}
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;