Есть переменная, допустим string s = "/87536464"
, необходимо проверить её на наличие в первом столбце [,]
массива и в случае, если такого значения там нет, то записать.
Как подобное делается ?
UPD:
Совсем туго с проф. языком, попробую объяснить иначе:
Я получаю данные в одномерный массив, затем переписываю их в двумерный массив (в первый столбец), потом получаю еще одномерный массив и мне надо продолжить запись в двумерный массив только тех значения из одномерного массива, которых ещё нет в двумерном.
Вот как раз значение "/87536464"
одно из значений одномерного массива.
Я присваиваю переменной это значение эначение string s = "/87536464"
и вот эту мать её переменную мне надо проверить на наличие в двумерном массиве.
И если она там есть, получить ответ true
если её там нет false
- вот и всё.
UPD
Вот как из массива Ssilki[]
получить в массив 'Baza[]' только те значения, которых нет в 'Baza[]' , т.е. не дублировать одни и те же.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApp7
{
class Program
{
static void Main(string[] args)
{
string[] Ssilki = new string[5];
Ssilki[0] = "1000";
Ssilki[1] = "2000";
Ssilki[2] = "3000";
Ssilki[3] = "4000";
Ssilki[4] = "5000";
string[,] Baza = new string[100, 20];
Baza[0, 0] = "1000";
Baza[1, 0] = "3000";
}
}
}
Т.к. постановка вопроса не совсем понятная, я сделал простой вариант когда есть массив строк и массив дополнительных строк, нужно в первый добавить только те строки второго массива которые в первом не встречаются. Использовал HashSet для того чтобы алгоритм был быстрый для случая когда много строк, если строк мало и скорость не важна можно проверять и через List.Contains
или просто циклом.
Вот моё решение на C#, можно запустить онлайн:
using System;
using System.Collections.Generic;
class CheckStrings
{
static void Main()
{
string[] strs = {"ab", "cd"};
string[] to_add = {"cd", "ef"};
HashSet<string> checker = new HashSet<string>();
foreach (string s in strs) checker.Add(s);
List<string> strs_list = new List<string>(strs);
foreach (string s in to_add) {
if (!checker.Contains(s)) {
strs_list.Add(s);
checker.Add(s);
}
}
strs = strs_list.ToArray();
foreach (string s in strs) Console.Write(s + " ");
}
}
Дополнение: вроде уточнились с постановкой задачи, код выше я переписал для двумерного массива, вот что получилось, можно запустить онлайн:
using System;
using System.Collections.Generic;
class CheckStrings
{
static void Main()
{
string[,] strs = {
{"ab", null},
{"cd", null},
{null, null},
{null, null},
};
int n = 2; // Initial number of strings in strs.
string[] to_add = {"cd", "ef"};
HashSet<string> checker = new HashSet<string>();
for (int i = 0; i < n; ++i) checker.Add(strs[i, 0]);
foreach (string s in to_add) {
if (!checker.Contains(s)) {
strs[n, 0] = s;
checker.Add(s);
++n;
}
}
for (int i = 0; i < n; ++i) Console.Write(strs[i, 0] + " ");
}
}
Вот, обход каждого первого элемента строки двумерного массива с заменой если не соответствует: (Изменен)
bool ContainsValue(string arg, string[,] mas)
{
bool res = false;
for (int i = 0; i < mas.GetLength(0); i++)
for (int j = 0; j < mas.GetLength(1); j++)
if (mas[i, j].Equals(arg))
{
res = true;
break;
}
return res;
}
bool ContainsFirstColumn(string arg, string[,] mas)
{
bool res = false;
for (int i = 0; i < mas.GetLength(0); i++)
if (mas[i, 0].Equals(arg))
{
res = true;
break;
}
return res;
}
bool SetString(string[,] array, string str, int index)
{
for (int i = 0; i < array.GetLength(0); i++)
if (array[i,index] != null)
{
if (array[i,index] == str)
return false;
}
else
{
array[i,index] = str;
return true;
}
return false;
}
Как я понял - вам нужно это.
UPD. Немного обновил. В случае неравномерного заполнения столбца (если в начале может оказаться null, а только потом значения).
bool SetString(string[,] array, string str, int index)
{
for (int i = 0; i < array.GetLength(0); i++)
if (array[i,index] != null)
if (array[i,index] == str)
return false;
for (int i = 0; i < array.GetLength(0); i++)
if (array[i,index] == null)
{
array[i,index] = str;
return true;
}
return false;
}
Не могу понять как запустить Ninject в Api Controller при добавлении его в MVC проект
Здравствуйте, делаю лабораторную работу и никак не могу разобраться как получить вменяемый хэш-образВ общем суть задачи состоит в 1