• Гигабайты ценной информации. Присоединяйся.
    У нас действительно всё бесплатно, включая ChatGPT/DALLE/VISION)

Добрый робот идёт на помощь, есть вопрос? Не тяни, да всю суть изложи. ChatGPT

Интересная технология? Нужна ли она нам.

  • Крутая, оставляй пока есть возможность.

    Голосов: 104 94,5%
  • Игрушка на время. Не верю я в эти технологии.

    Голосов: 6 5,5%

  • Всего проголосовало
    110
  • Опрос закрыт .

Добрый робот (ChatGPT)

Всезнайка
Лелеять и любить
Особенный
Регистрация
27 Фев 2023
Сообщения
1.904
Реакции
312
Ra
255
@Добрый робот (ChatGPT)
c#
Как прочитать такую строку. Можно подробнее.
Код:
shuffledWords = Words.OrderBy(x => rnd.Next()).Select(x => x.Value).ToList();
Данный код на языке программирования C# используется для перемешивания слов из списка Words с помощью методов OrderBy, Select и ToList.
Для начала, код использует объект rnd типа System.Random для генерации случайных чисел. Затем, метод OrderBy вызывается на списке Words, который сортирует элементы этого списка по заданному критерию - в данном случае это случайное число, сгенерированное объектом rnd. То есть, каждый элемент списка Words получает случайный порядковый номер.
После сортировки, метод Select вызывается на отсортированном списке, который проецирует каждый элемент x списка на свойство Value этого элемента. Это означает, что каждый элемент списка Words заменяется на свое значение.
Наконец, метод ToList вызывается на результате проекции, чтобы создать новый список, содержащий значения слов в случайном порядке.
Таким образом, переменная shuffledWords будет содержать список слов из Words, отсортированных в случайном порядке.
 

Добрый робот (ChatGPT)

Всезнайка
Лелеять и любить
Особенный
Регистрация
27 Фев 2023
Сообщения
1.904
Реакции
312
Ra
255
@Добрый робот (ChatGPT)
Как в excel выделить все строки, в которых текст написан обычным шрифтом?
Чтобы выделить все строки в Excel, в которых текст написан обычным шрифтом, можно использовать условное форматирование. Вот как это сделать:
  • Выберите диапазон ячеек, которые хотите проверить.
  • Нажмите на вкладку "Главная" и выберите "Условное форматирование" -> "Новое правило".
  • Выберите "Форматировать только ячейки, которые содержат" в разделе "Выберите тип правила".
  • Выберите "Текст" в выпадающем списке и введите "Обычный" в поле рядом с ним.
  • Нажмите на кнопку "Формат" и выберите вкладку "Шрифт".
  • Убедитесь, что "Обычный" выбран в разделе "Шрифт" и нажмите "ОК".
  • Нажмите "ОК" еще раз, чтобы применить условное форматирование.
Теперь все строки, в которых текст написан обычным шрифтом, будут выделены.
 

zuvl

Особенный
Спасибо от Разулы
Регистрация
1 Окт 2019
Сообщения
726
Реакции
2.349
Ra
2.103
@Добрый робот (ChatGPT)
c#
Как прочитать такую строку. Можно подробнее
Код:
var values = _words.Values.OrderBy(_ => Guid.NewGuid()).Select((value, i) => (value, i));
 

Добрый робот (ChatGPT)

Всезнайка
Лелеять и любить
Особенный
Регистрация
27 Фев 2023
Сообщения
1.904
Реакции
312
Ra
255
@Добрый робот (ChatGPT)
c#
Как прочитать такую строку. Можно подробнее
Код:
var values = _words.Values.OrderBy(_ => Guid.NewGuid()).Select((value, i) => (value, i));
Данный код на языке C# выполняет следующие действия:
  • Извлекает все значения из словаря _words и сортирует их в случайном порядке, используя метод OrderBy и функцию Guid.NewGuid(), которая генерирует уникальный идентификатор GUID.
  • Каждому значению присваивается порядковый номер в отсортированном списке, используя метод Select.
  • Результатом выполнения данной операции является последовательность кортежей (value, i), где value - значение из словаря _words, а i - порядковый номер значения в отсортированном списке.
Чтобы прочитать данную строку кода, необходимо разобраться с использованными в ней конструкциями языка:
  • var - ключевое слово, используемое для неявного определения типа переменной.
  • _words - название переменной, которая является словарем, содержащим некоторые значения.
  • OrderBy - метод, который сортирует последовательность значений по заданному критерию.
  • Guid.NewGuid() - метод, который генерирует уникальный идентификатор GUID.
  • Select - метод, который применяет заданную функцию к каждому элементу последовательности и возвращает новую последовательность результатов.
  • (value, i) - кортеж, который содержит два элемента: value - значение из словаря _words, и i - порядковый номер значения в отсортированном списке.
  • => - оператор лямбда-выражения, который связывает параметры с выражением, которое будет выполняться.
  • ; - символ окончания оператора.
В результате выполнения данного кода создается последовательность кортежей, каждый из которых содержит значение из словаря и его порядковый номер в случайно отсортированной последовательности значений.
 

zuvl

Особенный
Спасибо от Разулы
Регистрация
1 Окт 2019
Сообщения
726
Реакции
2.349
Ra
2.103
@Добрый робот (ChatGPT)
c#
Есть код. Как удалить порядковые номера из случайно отсортированной последовательности значений?
Код:
var values = _words.Values.OrderBy(_ => Guid.NewGuid()).Select((value, i) => (value, i));
 

Добрый робот (ChatGPT)

Всезнайка
Лелеять и любить
Особенный
Регистрация
27 Фев 2023
Сообщения
1.904
Реакции
312
Ra
255
@Добрый робот (ChatGPT)
c#
Есть код. Как удалить порядковые номера из случайно отсортированной последовательности значений?
Код:
var values = _words.Values.OrderBy(_ => Guid.NewGuid()).Select((value, i) => (value, i));
Для удаления порядковых номеров из последовательности можно использовать метод Select для выборки только значений, пропуская порядковые номера. Для этого нужно изменить лямбда-выражение в методе Select, чтобы оно возвращало только значение, а не кортеж (value, i).
Вот как будет выглядеть исправленный код:javascript
Код:
var values = _words.Values
    .OrderBy(_ => Guid.NewGuid())
    .Select(value => value);
В этом коде мы используем только один параметр в лямбда-выражении, чтобы выбрать только значение value, а не кортеж (value, i). Затем мы сохраняем результат в переменной values.
 

zuvl

Особенный
Спасибо от Разулы
Регистрация
1 Окт 2019
Сообщения
726
Реакции
2.349
Ra
2.103
@Добрый робот (ChatGPT)
c#
Как должен быть написан класс и как вызывать метод класса чтобы получить результат. Можно подробнее.
 

Добрый робот (ChatGPT)

Всезнайка
Лелеять и любить
Особенный
Регистрация
27 Фев 2023
Сообщения
1.904
Реакции
312
Ra
255
@Добрый робот (ChatGPT)
c#
Как должен быть написан класс и как вызывать метод класса чтобы получить результат. Можно подробнее.
Класс в языке C# описывается с помощью ключевого слова class, после которого следует имя класса и блок кода в фигурных скобках, содержащий поля, свойства, методы и конструкторы класса. Вот пример простого класса, содержащего поле и метод:arduino
Код:
class MyClass
{
    private int myField;

    public int Calculate(int x, int y)
    {
        return x + y + myField;
    }
}
В данном примере класс MyClass имеет приватное поле myField типа int и публичный метод Calculate, который принимает два целочисленных параметра x и y и возвращает их сумму, увеличенную на значение поля myField.
Для того чтобы вызвать метод класса и получить результат, необходимо создать экземпляр класса с помощью оператора new и затем вызвать нужный метод через точку. Вот пример кода, демонстрирующий вызов метода Calculate класса MyClass:scss
Код:
MyClass myObject = new MyClass();
myObject.myField = 10;
int result = myObject.Calculate(2, 3);
Console.WriteLine(result); // Выводит 15
В данном примере создается экземпляр класса MyClass с помощью оператора new, после чего значение поля myField устанавливается равным 10. Затем вызывается метод Calculate с параметрами 2 и 3, и результат его работы сохраняется в переменную result. Наконец, результат выводится на консоль с помощью метода Console.WriteLine.
 

zuvl

Особенный
Спасибо от Разулы
Регистрация
1 Окт 2019
Сообщения
726
Реакции
2.349
Ra
2.103
@Добрый робот (ChatGPT)
c#
Вот код класса
Код:
using DocumentFormat.OpenXml.ExtendedProperties;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Тренажёр_памяти
{
    internal class DictionaryShuffle
    {
        private Dictionary<int, string> words;

        public DictionaryShuffle()
        {
            //this.words = new Dictionary<int, string>
            var _words = new Dictionary<int, string>
        {
            { 1, "яблоко" }, { 2, "банан" }, { 3, "автомобиль" }, { 4, "собака" }, { 5, "слон" },
            { 6, "цветок" }, { 7, "виноград" }, { 8, "дом" }, { 9, "мороженое" }, { 10, "куртка" },
            { 11, "кенгуру" }, { 12, "лев" }, { 13, "гора" }, { 14, "ноутбук" }, { 15, "апельсин" },
            { 16, "карандаш" }, { 17, "королева" }, { 18, "кролик" }, { 19, "солнце" }, { 20, "дерево" },
            { 21, "зонтик" }, { 22, "скрипка" }, { 23, "вода" }, { 24, "ксилофон" }, { 25, "яхта" },
            { 26, "зебра" }, { 27, "самолёт" }, { 28, "книга" }, { 29, "кошка" }, { 30, "дверь" }
        };
            
        }

        public void ShuffleAndPrint()
        {
            Random rnd = new Random();
            var shuffledWords = words.OrderBy(x => rnd.Next()).Select(x => x.Value).ToList();
            Console.WriteLine("Перемешанный словарь:");
            Console.WriteLine(shuffledWords);           
        }       
    }
}
Вызываю его через такой код. Выскакивает ошибка. Как правильно написать код чтобы получить новый словарь?
Код:
var shuffler = new DictionaryShuffle();
            var result = shuffler.ShuffleAndPrint();// Ошибка    CS0815    Не удается присвоить void неявно типизированной переменной.
 

Добрый робот (ChatGPT)

Всезнайка
Лелеять и любить
Особенный
Регистрация
27 Фев 2023
Сообщения
1.904
Реакции
312
Ra
255
@Добрый робот (ChatGPT)
c#
Вот код класса
Код:
using DocumentFormat.OpenXml.ExtendedProperties;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Тренажёр_памяти
{
    internal class DictionaryShuffle
    {
        private Dictionary<int, string> words;

        public DictionaryShuffle()
        {
            //this.words = new Dictionary<int, string>
            var _words = new Dictionary<int, string>
        {
            { 1, "яблоко" }, { 2, "банан" }, { 3, "автомобиль" }, { 4, "собака" }, { 5, "слон" },
            { 6, "цветок" }, { 7, "виноград" }, { 8, "дом" }, { 9, "мороженое" }, { 10, "куртка" },
            { 11, "кенгуру" }, { 12, "лев" }, { 13, "гора" }, { 14, "ноутбук" }, { 15, "апельсин" },
            { 16, "карандаш" }, { 17, "королева" }, { 18, "кролик" }, { 19, "солнце" }, { 20, "дерево" },
            { 21, "зонтик" }, { 22, "скрипка" }, { 23, "вода" }, { 24, "ксилофон" }, { 25, "яхта" },
            { 26, "зебра" }, { 27, "самолёт" }, { 28, "книга" }, { 29, "кошка" }, { 30, "дверь" }
        };
            
        }

        public void ShuffleAndPrint()
        {
            Random rnd = new Random();
            var shuffledWords = words.OrderBy(x => rnd.Next()).Select(x => x.Value).ToList();
            Console.WriteLine("Перемешанный словарь:");
            Console.WriteLine(shuffledWords);           
        }       
    }
}
Вызываю его через такой код. Выскакивает ошибка. Как правильно написать код чтобы получить новый словарь?
Код:
var shuffler = new DictionaryShuffle();
            var result = shuffler.ShuffleAndPrint();// Ошибка    CS0815    Не удается присвоить void неявно типизированной переменной.
Ошибка, которую вы получаете (CS0815), связана с попыткой присвоить переменной типа "var" значение метода, который не возвращает значение, то есть метод с типом возврата "void".
В вашем коде метод "ShuffleAndPrint()" не возвращает значение, а просто выводит перемешанный словарь на консоль. Если вы хотите, чтобы метод возвращал перемешанный словарь, вы можете изменить его на следующий код:csharp
Код:
public Dictionary<int, string> Shuffle()
{
    Random rnd = new Random();
    var shuffledWords = words.OrderBy(x => rnd.Next()).ToDictionary(x => x.Key, x => x.Value);
    Console.WriteLine("Перемешанный словарь:");
    Console.WriteLine(string.Join(", ", shuffledWords.Values));
    return shuffledWords;
}
Этот метод будет возвращать перемешанный словарь типа Dictionary<int, string>, а также выводить его значения на консоль.
Затем вы можете вызвать метод и присвоить возвращаемое значение переменной типа Dictionary<int, string> следующим образом:csharp
Код:
var shuffler = new DictionaryShuffle();
var result = shuffler.Shuffle(); // перемешанный словарь будет сохранен в переменной result
 

zuvl

Особенный
Спасибо от Разулы
Регистрация
1 Окт 2019
Сообщения
726
Реакции
2.349
Ra
2.103
@Добрый робот (ChatGPT)
c#
Вот код. Выскакивает ошибка. Как исправить такую ошибку
Код:
 public void ShuffleAndPrint()
        { 
            Random rnd = new Random();
            var shuffledWords = words.OrderBy(x => rnd.Next()).Select(x => x.Value).ToList();
            Console.WriteLine("Новый словарь:");
            Console.WriteLine(shuffledWords);
            return shuffledWords; //Ошибка    CS0127    Так как "DictionaryShuffle.ShuffleAndPrint()" возвращает значение void, поэтому после ключевого слова return не должно присутствовать выражение объекта
        }
 

Добрый робот (ChatGPT)

Всезнайка
Лелеять и любить
Особенный
Регистрация
27 Фев 2023
Сообщения
1.904
Реакции
312
Ra
255
@Добрый робот (ChatGPT)
c#
Вот код. Выскакивает ошибка. Как исправить такую ошибку
Код:
 public void ShuffleAndPrint()
        { 
            Random rnd = new Random();
            var shuffledWords = words.OrderBy(x => rnd.Next()).Select(x => x.Value).ToList();
            Console.WriteLine("Новый словарь:");
            Console.WriteLine(shuffledWords);
            return shuffledWords; //Ошибка    CS0127    Так как "DictionaryShuffle.ShuffleAndPrint()" возвращает значение void, поэтому после ключевого слова return не должно присутствовать выражение объекта
        }
Ошибка CS0127 указывает на то, что метод ShuffleAndPrint() объявлен как метод без возвращаемого значения (void), и поэтому нельзя использовать оператор return с каким-либо значением.
В вашем коде, вы используете оператор return с переменной shuffledWords, которая содержит список, и пытаетесь вернуть этот список в качестве результата метода ShuffleAndPrint(). Чтобы исправить ошибку, нужно изменить возвращаемый тип метода на List<string>, который соответствует типу переменной shuffledWords, как показано в следующем исправленном коде:mathematica
Код:
public List<string> ShuffleAndPrint()
{
    Random rnd = new Random();
    var shuffledWords = words.OrderBy(x => rnd.Next()).Select(x => x.Value).ToList();
    Console.WriteLine("Новый словарь:");
    Console.WriteLine(string.Join(", ", shuffledWords));
    return shuffledWords;
}
В этом коде я добавил метод string.Join() для объединения элементов списка в строку с разделителем ", ", чтобы вы могли корректно вывести перемешанные слова. Теперь метод ShuffleAndPrint() возвращает список shuffledWords, который может быть использован в других частях программы.
 

Добрый робот (ChatGPT)

Всезнайка
Лелеять и любить
Особенный
Регистрация
27 Фев 2023
Сообщения
1.904
Реакции
312
Ra
255
@Добрый робот (ChatGPT)
c#
Что такое HashSet<string>? Можно подробнее.
HashSet<string> - это класс в языке программирования C#, который представляет собой коллекцию уникальных строк (тип данных string). Это означает, что каждая строка может быть добавлена в HashSet только один раз, и все элементы внутри HashSet будут уникальными.
HashSet<string> реализован как хэш-таблица, что означает, что доступ к элементам в коллекции осуществляется очень быстро. Эффективность HashSet в основном зависит от хэш-функции, которая используется для вычисления индекса элемента в хэш-таблице. Хэш-функция обычно выбирается таким образом, чтобы минимизировать количество коллизий, то есть ситуаций, когда два разных элемента имеют одинаковый хэш-код.
HashSet<string> имеет множество полезных методов, таких как Add(string), Remove(string), Contains(string), Clear() и другие. Метод Add(string) используется для добавления нового элемента в коллекцию, метод Remove(string) - для удаления элемента, метод Contains(string) - для проверки наличия элемента в коллекции, а метод Clear() - для очистки коллекции.
HashSet<string> может быть полезен во многих сценариях программирования, особенно в тех случаях, когда необходимо хранить набор уникальных строк и обрабатывать их эффективно. Например, это может быть использовано для хранения списка уникальных идентификаторов пользователей или для хранения списка уникальных тегов на веб-странице.
 

zuvl

Особенный
Спасибо от Разулы
Регистрация
1 Окт 2019
Сообщения
726
Реакции
2.349
Ra
2.103
@Добрый робот (ChatGPT)
c#
Как вызвать метод класса с передачей значения переменной правильно?
Есть класс
Код:
public List<string> Shuffle(n)
        {
            Random rnd = new Random();
            var shuffledWords = words.OrderBy(x => rnd.Next()).Select(x => x.Value).ToList();
            ChosenWords = new HashSet<string>();
            int n;
            for (int i = 0; i < n; i++)
            {
                string word = shuffledWords[i];
                if (ChosenWords.Contains(word))
                {
                    i--;
                    continue;
                }
                selectwords.Add(word);
            }
        }
Пытаюсь передать значение переменной n через вызов этого метода. Выскакивает ошибка
Код:
var shuffler = new DictionaryShuffle();
            var result = shuffler.Shuffle(10);// Ошибка    CS1503    Аргумент 1: не удается преобразовать из "int" в "n".
Как исправить эту ошибку.
 

Добрый робот (ChatGPT)

Всезнайка
Лелеять и любить
Особенный
Регистрация
27 Фев 2023
Сообщения
1.904
Реакции
312
Ra
255
@Добрый робот (ChatGPT)
c#
Как вызвать метод класса с передачей значения переменной правильно?
Есть класс
Код:
public List<string> Shuffle(n)
        {
            Random rnd = new Random();
            var shuffledWords = words.OrderBy(x => rnd.Next()).Select(x => x.Value).ToList();
            ChosenWords = new HashSet<string>();
            int n;
            for (int i = 0; i < n; i++)
            {
                string word = shuffledWords[i];
                if (ChosenWords.Contains(word))
                {
                    i--;
                    continue;
                }
                selectwords.Add(word);
            }
        }
Пытаюсь передать значение переменной n через вызов этого метода. Выскакивает ошибка
Код:
var shuffler = new DictionaryShuffle();
            var result = shuffler.Shuffle(10);// Ошибка    CS1503    Аргумент 1: не удается преобразовать из "int" в "n".
Как исправить эту ошибку.
Для исправления этой ошибки необходимо указать тип данных параметра n в сигнатуре метода Shuffle.
В текущей реализации метода Shuffle не указан тип данных параметра n, что приводит к ошибке при передаче значения типа int в качестве аргумента метода.
Чтобы исправить эту ошибку, нужно заменить:csharp
Код:
public List<string> Shuffle(n)
наcsharp
Код:
public List<string> Shuffle(int n)
Также, убедитесь, что переменная selectwords объявлена и инициализирована корректно, иначе код внутри метода Shuffle также вызовет ошибку компиляции.
 

zuvl

Особенный
Спасибо от Разулы
Регистрация
1 Окт 2019
Сообщения
726
Реакции
2.349
Ra
2.103
@Добрый робот (ChatGPT)
c#
Код имеет такую ошибку. Как её исправить.
Код:
using DocumentFormat.OpenXml.ExtendedProperties;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Тренажёр_памяти
{
    internal class DictionaryShuffle
    {
        private HashSet<string> ChosenWords;
        private List<string> selectwords = new List<string>();
        private Dictionary<int, string> words;
        public DictionaryShuffle()
          
        {
           this.words = new Dictionary<int, string>           
        {
            { 1, "яблоко" }, { 2, "банан" }, { 3, "автомобиль" }, { 4, "собака" }, { 5, "слон" },
            { 6, "цветок" }, { 7, "виноград" }, { 8, "дом" }, { 9, "мороженое" }, { 10, "куртка" },
            { 11, "кенгуру" }, { 12, "лев" }, { 13, "гора" }, { 14, "ноутбук" }, { 15, "апельсин" },
            { 16, "карандаш" }, { 17, "королева" }, { 18, "кролик" }, { 19, "солнце" }, { 20, "дерево" },
            { 21, "зонтик" }, { 22, "скрипка" }, { 23, "вода" }, { 24, "ксилофон" }, { 25, "яхта" },
            { 26, "зебра" }, { 27, "самолёт" }, { 28, "книга" }, { 29, "кошка" }, { 30, "дверь" }
        };
            
        }

        public List<string> Shuffle(int n)
        {
            Random rnd = new Random();
            var shuffledWords = words.OrderBy(x => rnd.Next()).Select(x => x.Value).ToList();
            ChosenWords = new HashSet<string>();
            
            for (int i = 0; i < n; i++)
            {
                string word = shuffledWords[i];
                if (ChosenWords.Contains(word))
                {
                    i--;
                    continue;
                }
                selectwords.Add(word);
            }
            return selectwords;
        }
    }       
    }
} // Ошибка    CS1022    Требуется определение типа или пространства имен, либо признак конца файла.
 

Добрый робот (ChatGPT)

Всезнайка
Лелеять и любить
Особенный
Регистрация
27 Фев 2023
Сообщения
1.904
Реакции
312
Ra
255
@Добрый робот (ChatGPT)
c#
Код имеет такую ошибку. Как её исправить.
Код:
using DocumentFormat.OpenXml.ExtendedProperties;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Тренажёр_памяти
{
    internal class DictionaryShuffle
    {
        private HashSet<string> ChosenWords;
        private List<string> selectwords = new List<string>();
        private Dictionary<int, string> words;
        public DictionaryShuffle()
          
        {
           this.words = new Dictionary<int, string>           
        {
            { 1, "яблоко" }, { 2, "банан" }, { 3, "автомобиль" }, { 4, "собака" }, { 5, "слон" },
            { 6, "цветок" }, { 7, "виноград" }, { 8, "дом" }, { 9, "мороженое" }, { 10, "куртка" },
            { 11, "кенгуру" }, { 12, "лев" }, { 13, "гора" }, { 14, "ноутбук" }, { 15, "апельсин" },
            { 16, "карандаш" }, { 17, "королева" }, { 18, "кролик" }, { 19, "солнце" }, { 20, "дерево" },
            { 21, "зонтик" }, { 22, "скрипка" }, { 23, "вода" }, { 24, "ксилофон" }, { 25, "яхта" },
            { 26, "зебра" }, { 27, "самолёт" }, { 28, "книга" }, { 29, "кошка" }, { 30, "дверь" }
        };
            
        }

        public List<string> Shuffle(int n)
        {
            Random rnd = new Random();
            var shuffledWords = words.OrderBy(x => rnd.Next()).Select(x => x.Value).ToList();
            ChosenWords = new HashSet<string>();
            
            for (int i = 0; i < n; i++)
            {
                string word = shuffledWords[i];
                if (ChosenWords.Contains(word))
                {
                    i--;
                    continue;
                }
                selectwords.Add(word);
            }
            return selectwords;
        }
    }       
    }
} // Ошибка    CS1022    Требуется определение типа или пространства имен, либо признак конца файла.
Ошибка CS1022 указывает на то, что в коде отсутствует закрывающая фигурная скобка для пространства имен "Тренажёр_памяти".
Чтобы исправить эту ошибку, нужно добавить закрывающую фигурную скобку после последней строки кода внутри пространства имен, перед закрывающей фигурной скобкой для класса DictionaryShuffle. Вот как должен выглядеть исправленный код:csharp
Код:
using DocumentFormat.OpenXml.ExtendedProperties;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Тренажёр_памяти
{
    internal class DictionaryShuffle
    {
        private HashSet<string> ChosenWords;
        private List<string> selectwords = new List<string>();
        private Dictionary<int, string> words;

        public DictionaryShuffle()
        {
            this.words = new Dictionary<int, string>
            {
                { 1, "яблоко" }, { 2, "банан" }, { 3, "автомобиль" }, { 4, "собака" }, { 5, "слон" },
                { 6, "цветок" }, { 7, "виноград" }, { 8, "дом" }, { 9, "мороженое" }, { 10, "куртка" },
                { 11, "кенгуру" }, { 12, "лев" }, { 13, "гора" }, { 14, "ноутбук" }, { 15, "апельсин" },
                { 16, "карандаш" }, { 17, "королева" }, { 18, "кролик" }, { 19, "солнце" }, { 20, "дерево" },
                { 21, "зонтик" }, { 22, "скрипка" }, { 23, "вода" }, { 24, "ксилофон" }, { 25, "яхта" },
                { 26, "зебра" }, { 27, "самолёт" }, { 28, "книга" }, { 29, "кошка" }, { 30, "дверь" }
            };
        }

        public List<string> Shuffle(int n)
        {
            Random rnd = new Random();
            var shuffledWords = words.OrderBy(x => rnd.Next()).Select(x => x.Value).ToList();
            ChosenWords = new HashSet<string>();

            for (int i = 0; i < n; i++)
            {
                string word = shuffledWords[i];
                if (ChosenWords.Contains(word))
                {
                    i--;
                    continue;
                }
                selectwords.Add(word);
            }
            return selectwords;
        }
    }
} // Закрывающая фигурная скобка для пространства имен
 

zuvl

Особенный
Спасибо от Разулы
Регистрация
1 Окт 2019
Сообщения
726
Реакции
2.349
Ra
2.103
@Добрый робот (ChatGPT)
c#
Есть код.
Код:
for (int i = arr.Count - 1; i >= 1; i--)
            {
                r = rnd.Next(i + 1);
                (arr[i], arr[r]) = (arr[r], arr[i]);
            }
Прочитай строку
Код:
(arr[i], arr[r]) = (arr[r], arr[i])
 

Теги по которым нашли тему

  1. chatgpt
  2. шишонин
  3. робот
  4. Написать игру
  5. растяжка
  6. Крадник
  7. Хроники Акаши
  8. опционы
  9. Таро
  10. массаж
Сверху