Слияние двух Наборов <T>

Облачные функции Google теперь позволяют отправлять push-уведомления с устройства на устройство без сервера приложений.

На соответствующей странице в облачных функциях Google:

Разработчики могут использовать функции облака, чтобы пользователи могли общаться и получать актуальную информацию о приложении. Рассмотрим, например, приложение, которое позволяет пользователям следить за действиями друг друга в приложении. В таком приложении функция, инициированная записью базы данных Realtime для хранения новых подписчиков, может создавать уведомления Firebase Cloud Messaging (FCM), чтобы сообщить соответствующим пользователям, что они получили новых подписчиков.

Пример:

  1. Функция запускает запись в путь базы данных Realtime, где хранятся последователи.
  2. Функция составляет сообщение для отправки через FCM.
  3. FCM отправляет уведомление сообщение на устройство пользователя.
blockquote>

Вот демонстрационный проект для отправки push-уведомлений устройства на устройство с помощью Firebase и облачных функций Google.

8
задан Wim Ombelets 8 February 2013 в 14:09
поделиться

5 ответов

При использовании Списка <>, можно использовать.AddRange для добавления одного списка к другому списку.

Или можно использовать возврат урожая для объединения списков на лету как это:

public IEnumerable<string> Combine(IEnumerable<string> col1, IEnumerable<string> col2)
{
    foreach(string item in col1)
        yield return item;

    foreach(string item in col2)
        yield return item;
}
16
ответ дан 5 December 2019 в 08:55
поделиться

Вы могли бы хотеть смотреть на Iesi. Наборы и Расширенный Универсальный Iesi. Наборы (потому что первый выпуск был сделан в 1,1, когда еще не было никаких дженериков).

Расширенный Iesi имеет класс ISet, который действует точно как HashSet: это осуществляет уникальных участников и не позволяет дубликаты.

Изящная вещь о Iesi состоит в том, что он установил операторы вместо методов для слияния наборов, таким образом, у Вас есть выбор между объединением (|), пересечение (и), XOR (^) и т.д.

1
ответ дан 5 December 2019 в 08:55
поделиться

Я думаю HashSet<T> большая справка.

HashSet<T> класс обеспечивает высокопроизводительные операции присвоения. Набор является набором, который не содержит дублирующихся элементов, и чьи элементы без определенного порядка.

Просто добавьте объекты к нему и затем используйте CopyTo.


Обновление: HashSet<T> находится в.Net 3.5

Возможно, можно использовать Dictionary<TKey, TValue>. Устанавливание дублирующегося ключа к словарю не повысит исключение.

1
ответ дан 5 December 2019 в 08:55
поделиться

Можно ли передать Набор в Вас метод refernce так, чтобы можно было просто добавить объекты к нему, тот способ, которым Вы ничего не должны возвращать. Это - то, на что могло бы быть похожим, сделали ли Вы это в c#.

class Program
{
    static void Main(string[] args)
    {
        Collection<string> myitems = new Collection<string>();
        myMthod(ref myitems);
        Console.WriteLine(myitems.Count.ToString());
        Console.ReadLine();
    }

    static void myMthod(ref Collection<string> myitems)
    {
        myitems.Add("string");
        if(myitems.Count <5)
            myMthod(ref myitems);
    }
}

Как Установленный @Zooba, Проходящим мимо касательно, не необходимо здесь, если Вы передающий значением он будет также работать.

1
ответ дан 5 December 2019 в 08:55
поделиться

Насколько слияние идет:

Интересно, там более эффективный способ иметь рекурсивную функцию, которая возвращает список строк без дубликатов? Я не должен использовать Набор, это может быть в значительной степени любой подходящий тип данных.

Ваша функция собирает возвращаемое значение, правильно? Вы разделяете предоставленный список в половине, вызывая сам снова (дважды) и затем объединяя те результаты.

Во время шага слияния, почему не только проверяют перед добавлением каждой строки к результату? Если это уже там, пропустите его.

Принятие Вы работаете с отсортированными списками, конечно.

0
ответ дан 5 December 2019 в 08:55
поделиться
Другие вопросы по тегам:

Похожие вопросы: