(PHP 4 >= 4.0.5, PHP 5)
array_search -- Осуществляет поиск данного значения в массиве и возвращает соответствующий ключ в случае удачи
Описание
mixed array_search (mixed needle, array haystack [, bool strict])Ищет в haystack значение needle и возвращает ключ, если таковое присутствует в массиве, FALSE в противном случае.
Замечание: Если needle является строкой, производится регистро-зависимое сравнение.
Замечание: До PHP 4.2.0, array_search() при неудаче возвращала NULL вместо FALSE .
Если вы передадите значение TRUE в качестве необязательного третьего параметра strict , функция array_search() также проверит тип needle в массиве haystack .
Если needle присутствует в haystack более одного раза, будет возвращён первый найденный ключ. Для того, чтобы возвратить ключи для всех найденных значений, используйте функцию array_keys() с необязательным параметром search_value .
Пример 1. Пример использования array_search()
|
Внимание |
Эта функция может возвращать как логическое значение FALSE , так и не относящееся к логическому типу значение, которое приводится к FALSE , например, 0 или "". За более подробной информации обратитесь к разделу Булев тип . Используйте оператор === для проверки значения, возвращаемого этой функцией. |
Как получить ключ словаря по значению в C #?
Dictionary
Я хочу что-то вроде этого:
GetByValueKey(string value);
getByValueKey("one") должен быть возвращен "1" .
Как лучше всего это сделать? Может быть, HashTable, SortedLists?
- Перебирая все KeyValuePair
в словаре (что будет значительным ударом по производительности, если у вас есть несколько записей в словаре) - Используйте два словаря, один для отображения значения на ключ и один для отображения ключа на значение (которое занимало бы в два раза больше места в памяти).
Точная копия: stackoverflow.com/questions/255341 DIV>
8 ответов 8
Значения не обязательно должны быть уникальными, поэтому вам нужно выполнить поиск. Вы можете сделать что-то вроде этого:
Var myKey = types.FirstOrDefault(x => x.Value == "one").Key;
Если значения уникальны и вставляются реже, чем читаются, создайте обратный словарь, в котором значения являются ключами, а ключи являются значениями.
2016-05-25 15: 45: 20Z
Вы можете сделать это:
Используйте метод 1, если производительность не учитывается, используйте метод 2, если память не учитывается.
Кроме того, все ключи должны быть уникальными, но значения не обязательно должны быть уникальными. У вас может быть несколько ключей с указанным значением.
Есть ли причина, по которой вы не можете изменить отношение ключ-значение?
2010-03-14 22: 35: 21Z
Я попал в ситуацию, когда привязка Linq была недоступна, и пришлось явно расширять лямбду. Это привело к простой функции:
Public static string KeyByValue(Dictionary
Назовите это следующим образом:
Public static void Main()
{
Dictionary
Работает в.NET 2.0 и других ограниченных средах.
2018-01-23 11: 01: 29Z
может быть что-то вроде этого:
Foreach (var keyvaluepair in dict) { if(Object.ReferenceEquals(keyvaluepair.Value, searchedObject)) { //dict.Remove(keyvaluepair.Key); break; } }
2017-06-12 10: 58: 04Z
Я создал класс двойного просмотра:
///
2019-02-26 18: 13: 01Z
Код ниже работает только в том случае, если он содержит данные уникального значения
Public string getKey(string Value)
{
if (dictionary.ContainsValue(Value))
{
var ListValueData=new List
2017-06-12 10: 59: 14Z
Types.Values.ToList().IndexOf("one");
Values.ToList () преобразует значения вашего словаря в список объектов. IndexOf ("один") ищет ваш новый список в поисках "один" и возвращает индекс, который будет соответствовать индексу ключа /Пара значений в словаре.
Этот метод не заботится о ключах словаря, он просто возвращает индекс искомого значения.
Помните, что в вашем словаре может быть несколько значений "один". И это причина, по которой нет метода «получить ключ».
2015-09-11 23: 09: 34Z
У меня есть очень простой способ сделать это. Это сработало идеально для меня.
Dictionary
Значение слова неудачный
Обзор Samsung Galaxy A7 (2017): не боится воды и экономии Стоит ли покупать samsung a7
Делаем бэкап прошивки на андроиде
Как настроить файл подкачки?
Установка режима совместимости в Windows