Как вернуть list из метода в c
Перейти к содержимому

Как вернуть list из метода в c

  • автор:

Возврат запроса из метода

В этом примере показан способ возврата запроса из метода в качестве возвращаемого значения и параметра out .

Объекты запроса являются составляемыми, что означает возможность возврата запроса из метода. Объекты, представляющие запросы, не сохраняют результирующую коллекцию, а сохраняют действия, необходимые для получения результатов. Преимущество возвращения объектов запроса заключается в том, что их можно комбинировать или изменять. Поэтому любое возвращаемое значение или параметр out метода, который возвращает запрос, должны также иметь этот тип. Если метод материализует запрос в конкретный тип List или Array, считается, что он должен возвращать результаты запроса, а не сам запрос. Переменную запроса, возвращаемую из метода, можно формировать или изменять.

Пример

В следующем примере первый метод QueryMethod1 возвращает запрос в качестве возвращаемого значения, а второй метод QueryMethod2 возвращает запрос в качестве out параметра ( returnQ в примере). Обратите внимание, что в обоих случаях возвращается запрос, а не его результаты.

IEnumerable QueryMethod1(int[] ints) => from i in ints where i > 4 select i.ToString(); void QueryMethod2(int[] ints, out IEnumerable returnQ) => returnQ = from i in ints where i < 4 select i.ToString(); int[] nums = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]; var myQuery1 = QueryMethod1(nums); 

Запрос myQuery1 выполняется в следующем цикле foreach.

foreach (var s in myQuery1)

Наведите указатель myQuery1 мыши на указатель мыши, чтобы просмотреть его тип.

Вы также можете выполнить запрос, возвращаемый напрямую QueryMethod1 , без использования myQuery1 .

foreach (var s in QueryMethod1(nums))

Наведите указатель мыши на вызов, чтобы QueryMethod1 просмотреть тип возвращаемого значения.

QueryMethod2 возвращает запрос в качестве значения параметра out:

QueryMethod2(nums, out IEnumerable myQuery2); // Execute the returned query. foreach (var s in myQuery2)

Запрос можно изменить с помощью композиции запросов. В этом случае предыдущий объект запроса используется для создания нового объекта запроса. Этот новый объект возвращает результаты, отличные от исходного объекта запроса.

myQuery1 = from item in myQuery1 orderby item descending select item; // Execute the modified query. Console.WriteLine("\nResults of executing modified myQuery1:"); foreach (var s in myQuery1)

См. также

Совместная работа с нами на GitHub

Источник этого содержимого можно найти на GitHub, где также можно создавать и просматривать проблемы и запросы на вытягивание. Дополнительные сведения см. в нашем руководстве для участников.

Как вернуть list из метода в c

Такая задача. Есть база данных MySQL. Нужно из неё вывести несколько значений которые соответствуют запросу. Это может быть от 1го до n.
Потом это нужно обработать дальше. Как лучше сделать я не знаю.
Есть идея создать список (List) из массива стринг (string[]) c различными полями. При вызове функции передать этот список и заполнить его данными из ДБ. Но вот не знаю как вернуть его назад?

такое не прокатывает

public List[] readQuery (string query, List daten)

Я понимаю что это велосипед который давно изобретен, но нет опыта и практики. Может кто подскажет хорошую статью по работе с MySQL на с#

List.Reverse Метод

Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.

Изменяет порядок элементов в списке List или в его части на обратный.

Перегрузки

Изменяет порядок элементов во всем списке List на обратный.

Изменяет порядок элементов в указанном диапазоне.

Примеры

В следующем примере показаны обе перегрузки Reverse метода . В примере создается List из строк и добавляется шесть строк. Перегрузка Reverse() метода используется для отмены списка, а затем перегрузка Reverse(Int32, Int32) метода используется для изменения середины списка, начиная с элемента 1 и охватывающего четыре элемента.

using namespace System; using namespace System::Collections::Generic; void main() < List^ dinosaurs = gcnew List(); dinosaurs->Add("Pachycephalosaurus"); dinosaurs->Add("Parasauralophus"); dinosaurs->Add("Mamenchisaurus"); dinosaurs->Add("Amargasaurus"); dinosaurs->Add("Coelophysis"); dinosaurs->Add("Oviraptor"); Console::WriteLine(); for each(String^ dinosaur in dinosaurs) < Console::WriteLine(dinosaur); >dinosaurs->Reverse(); Console::WriteLine(); for each(String^ dinosaur in dinosaurs) < Console::WriteLine(dinosaur); >dinosaurs->Reverse(1, 4); Console::WriteLine(); for each(String^ dinosaur in dinosaurs) < Console::WriteLine(dinosaur); >> /* This code example produces the following output: Pachycephalosaurus Parasauralophus Mamenchisaurus Amargasaurus Coelophysis Oviraptor Oviraptor Coelophysis Amargasaurus Mamenchisaurus Parasauralophus Pachycephalosaurus Oviraptor Parasauralophus Mamenchisaurus Amargasaurus Coelophysis Pachycephalosaurus */ 
using System; using System.Collections.Generic; public class Example < public static void Main() < Listdinosaurs = new List(); dinosaurs.Add("Pachycephalosaurus"); dinosaurs.Add("Parasauralophus"); dinosaurs.Add("Mamenchisaurus"); dinosaurs.Add("Amargasaurus"); dinosaurs.Add("Coelophysis"); dinosaurs.Add("Oviraptor"); Console.WriteLine(); foreach(string dinosaur in dinosaurs) < Console.WriteLine(dinosaur); >dinosaurs.Reverse(); Console.WriteLine(); foreach(string dinosaur in dinosaurs) < Console.WriteLine(dinosaur); >dinosaurs.Reverse(1, 4); Console.WriteLine(); foreach(string dinosaur in dinosaurs) < Console.WriteLine(dinosaur); >> > /* This code example produces the following output: Pachycephalosaurus Parasauralophus Mamenchisaurus Amargasaurus Coelophysis Oviraptor Oviraptor Coelophysis Amargasaurus Mamenchisaurus Parasauralophus Pachycephalosaurus Oviraptor Parasauralophus Mamenchisaurus Amargasaurus Coelophysis Pachycephalosaurus */ 
Imports System.Collections.Generic Public Class Example Public Shared Sub Main() Dim dinosaurs As New List(Of String) dinosaurs.Add("Pachycephalosaurus") dinosaurs.Add("Parasauralophus") dinosaurs.Add("Mamenchisaurus") dinosaurs.Add("Amargasaurus") dinosaurs.Add("Coelophysis") dinosaurs.Add("Oviraptor") Console.WriteLine() For Each dinosaur As String In dinosaurs Console.WriteLine(dinosaur) Next dinosaurs.Reverse() Console.WriteLine() For Each dinosaur As String In dinosaurs Console.WriteLine(dinosaur) Next dinosaurs.Reverse(1, 4) Console.WriteLine() For Each dinosaur As String In dinosaurs Console.WriteLine(dinosaur) Next End Sub End Class ' This code example produces the following output: ' 'Pachycephalosaurus 'Parasauralophus 'Mamenchisaurus 'Amargasaurus 'Coelophysis 'Oviraptor ' 'Oviraptor 'Coelophysis 'Amargasaurus 'Mamenchisaurus 'Parasauralophus 'Pachycephalosaurus ' 'Oviraptor 'Parasauralophus 'Mamenchisaurus 'Amargasaurus 'Coelophysis 'Pachycephalosaurus 

Reverse()

Изменяет порядок элементов во всем списке List на обратный.

public: void Reverse();

Как вернуть список классов List в C#?

то есть id и name. Это нужно передавать как лист классов. Вот, что пока есть:

public class MLandl < public static class MainLand < public int id; // id материка public int id_country; // id страны public string name; // название страны public string data_osn; // дата основания public string data_ras; // дата распада >public static MainLand GetCountryList(string id) < // возврат списка стран (лист классов) // запрос к БД >>

В Google никак не наткнусь на то, что требуется. Буду рад, если поищете за меня, но лучше, если поможете разобраться 🙂

  • Вопрос задан более трёх лет назад
  • 6185 просмотров

Комментировать
Решения вопроса 0
Ответы на вопрос 4

Во-первых, разберитесь с терминологией. Судя по вашим репликам, вам надо возвращать не "список классов", а "список экземпляров класса MainLand".

Во-вторых, в чем вообще проблема? Нужный возвращаемый тип - это List, IEnumerable или MainLand[] - выбирайте любой. Или у вас проблема в том, чтобы его создать? Создаются они так:

new List < new MainLand < . >, new MainLand < . >, new MainLand < . >, new MainLand < . >, new MainLand < . >, >;

Как альтернатива, список можно создать пустым и заполнить вызывая метод Add (конструктор списка, кстати, так "за кулисами" и делает).

new[] < new MainLand < . >, new MainLand < . >, new MainLand < . >, new MainLand < . >, new MainLand < . >, >;

Как альтернатива, можно создать список и вызвать у него метод ToArray()

public static IEnumerable GetCountryList(string id) < yield return new MainLand < . >; yield return new MainLand < . >; yield return new MainLand < . >; yield return new MainLand < . >; yield return new MainLand < . >; >

Еще можно просто создать список или массив - они оба являются перечислениями.

Или у вас проблема в обращении к базе данных? Но тогда и надо задавать вопрос про базу данных, а не про список.

Ну и совет: найдите хоть какой-нибудь учебник по C#! Вы же задаете сейчас вопрос, который в любом учебнике описан. Неужели задать вопрос и три дня ждать ответа проще, чем за эти три дня найти ответ в учебнике?

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *