Моя забота заключается в добавлении строки в массив строки, но я хотел убедиться, что эта строка уникальна, прежде чем вставлять ее в массив. Я искал и нашел много подходов для этого, но моя задача сделать быстрее, чем проверка всех элементов массива для дубликата, прежде чем добавить строку, поэтому я решил сделать следующее:Добавление уникальной строки в массив строк в C#
- Получить строку (URL из URL Mining Проект, который может возвращать тысячи URL-адресов и иногда может дублироваться, как указано в перекрестке).
- Получите ASCII для всех символов в URL-адресе и добавьте их, умноженные на индекс символа (это должен сделать уникальный идентификатор для каждого URL-адреса).
- Это значение в точке 2 будет индекс в массиве, чтобы вставить этот URL в.
- Проблема сейчас, этот массив должен быть динамическим (Как изменить его размер в зависимости от количества URLS я добыча?) ,
- Массив будет пористым (означает массив со многими нулями), есть ли эффективный способ получить ячейки, у которых есть только значения?
- Ниже код используется для получения позиции для уникальной строки.
int index = 1;
int position = 0;
string s = Console.ReadLine();
byte[] ASCIIValues = Encoding.ASCII.GetBytes(s);
foreach(byte b in ASCIIValues)
{
position += b * index;
index++;
Console.WriteLine(b);
}
Почему бы не использовать список ('Список')? Вы всегда можете проверить, есть ли 'list.Contains (value)'. Или '.Add (значение)'. –
Попробуйте ['HashSet'] (https://msdn.microsoft.com/en-us/library/bb359438 (v = vs.110) .aspx # Примеры) –
или просто используйте хэш-алгоритм (SHA256) и вставьте это в словарь. вы можете проверить, что тот же хеш уже существует или нет, прежде чем вставлять. – Thangadurai