У меня есть две различные массивы для моей форме следующим образом:Как петля удалить весь экземпляр значения из того же массива?
int[] X = { 14, 19, 24, 28, 33 };
int[] Y = { 90, 131, 132, 150, 170 };
И я могу удалить одно значение из обоих массивов (тот же номер индекса) с помощью:
int maxValue = Y[0];
for (int i = 1; i < Y.Length; i++)
{
if (Y[i] > maxValue)
maxValue = Y[i]; // max value in the array.
}
if (maxValue < 100)
{
int indexY = IndexOfInt(Y, maxValue);
Y = Y.Except(new int[] { maxValue }).ToArray();
List<int> Z = X.ToList();
Z.RemoveAt(indexY);
X = Z.ToArray();
}
static int IndexOfInt(int[] arr, int value) //finds the index number
{
for (int i = 0; i < arr.Length; i++)
{
if (arr[i] == value)
{
return i;
}
}
return -1;
}
Код выше возвращает:
int[] X = { 19, 24, 28, 33 };
int[] Y = { 131, 132, 150, 170 };
Как я могу идти о и удалить несколько экземпляров одного и того же значения, позволяет сказать
int[] X = { 14, 19, 24, 28, 33 };
int[] Y = { 90, 90, 132, 150, 170 };
Я предполагаю, что это должен быть цикл while
, но просто не может получить петлю или концепцию. Речь идет не об избежании дубликатов. Его об удалении всех значений <100
. Я хочу, чтобы избавиться от значений, которые меньше, чем 100 из X
массива из, например:
int[] Y = { 90, 90, 132, 150, 170 };
должен быть
int[] Y = { 132, 150, 170 };
И потому, что мы удаляем X[0]
X[1]
мы должны удалить Y[0]
Y[1]
int[] X = { 24, 28, 33 };
Как я должен использовать этот массив для создания Chart
в моем f ОРМ. Надеюсь, что это ясно для Why
.
Использует 'List' вариант для вас? Потому что это будет намного легче манипулировать, чем то, что вы делаете с этим массивом 'int []'. –
@Grant Winney Да 'Список' is fine –
envyM6
Как насчет HashSet? Или даже SortedSet ? (http://msdn.microsoft.com/en-us/library/dd412070(v=vs.110).aspx) Если вы хотите избежать дубликатов, это кажется хорошим вариантом. –