‘foreach’ для выполнения действия для всех строк в таблице

#windows-phone-8 #foreach #sql-server-ce

#windows-телефон-8 #предначертание #sql-server-ce

Вопрос:

У меня есть следующая структура класса и DataContext,

 public class Accounts
{
    public string AccountName { get; set; }

    public string SecretKey { get; set; }
}

class MyDataContext : DataContext
{
    public MyDataContext (string ConnectionString) : base(ConnectionString)
    {

    }

    public Table<Accounts> AllAccounts
    {
        get
        {
            return this.GetTable<Accounts>();
        }
    }
}
 

Я хочу получить все учетные записи из «Таблицы учетных записей» и использовать каждый из их секретных ключей, чтобы получить PIN-код и отобразить все эти учетные записи в списке…

Проблема в том, что я не могу создать оператор foreach

что — то вроде

 foreach (AllAccountsAC in MyDataContext.Accounts)
 

Ответ №1:

Во-первых, вы не можете выполнить foreach цикл, не введя переменную. Для a Table вам нужно будет выполнить foreach в его строках:

 Table t = new Table();
foreach (TableRow tr in t.Rows)
{
    //enter code here
}
 

Как только у вас есть строка, вы можете получить данные.

Во-вторых, вы не можете ввести a Table . Вы могли бы использовать типизированный List (например, List<Accounts> для вашего класса) и сделать то же самое, но использовать тип, установленный в List :

 List<Accounts> AccountList = new List<Accounts>();
foreach (Accounts a in AccountList)
{
    //enter code here
}
 

Получив объект из списка, вы можете выполнять с ним любые необходимые функции.