Проверка массива на наличие определенных чисел - C#
Формулировка задачи:
Здравствуйте.
Есть такой вопрос - как проверять в массиве наличие определенных чисел, а потом, если эти числа найдены, проводить определенные операции?
Вот есть такая программа.
Если в массиве plr, например, есть числа 3 и 7, то 2 и 6 элемент массива power надо умножить на определенный коэффициент.
Что-то типа такого:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace lab04___diskret
{
class Program
{
static void Main(string[] args)
{
Random rand = new Random();
Int32[] players = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
Int32[] power = { 3, 2, 5, 4, 7, 10, 5, 6, 7, 4 };
List<Int32> lst = new List<Int32>();
double N = 0.7;
double S = 0.5;
Int32[] plr = new Int32[6]; // здесь будут храниться 6 случайных неповторяющихся строк из players
int k;
double allpower = 0;
for (int i = 0; i < plr.Length; i++)
{
while (true)
{
k = rand.Next(players.Length);
if (!lst.Any(x => x.Equals(players[k])))
{
lst.Add(players[k]);
break;
}
}
}
foreach (var i in plr)
{
}
Console.ReadKey();
}
}
} if ((plr[i] == 3) & (plr[i] == 7))
allpower = (power[2] * N) + (power[6] * S);
if ((plr[i] == 9) & (plr[i] == 7))
allpower = (power[8]) + (power[6]);
Console.WriteLine(i);Решение задачи: «Проверка массива на наличие определенных чисел»
textual
Листинг программы
// Искомые элементы
int[] searchElems = new int[] {3, 7};
// Изменяемые элементы
int[] editElems = new int[] {2, 5};
// Функция, что надо сдлеать с элементами
Func<int, int> operation = (i) => i*2;
if (searchElems.All(x => plr.Contains(x)))
{
allpower = 0;
foreach (var e in editElems)
{
allpower += operation(power[e]);
}
}