Техника для создания нового var foo=new{bar = "Hohoho"}

Я новичок в языке C# и возникли вопросы. Я использую массивную однофайловую БД.

здесь вы можете создать такой класс:

public class products : DynamicModel 
{
    public products(String conn) : base("northwind", "products","productid") 
    {
    }
}

Теперь я буду делать что-то вроде этого:

var products = new { Productname = "HOHOHO" };

пока здесь все работает нормально, но я хочу запрашивать и обновлять различные базы данных и таблицы, и поэтому я не знаю, что существует столбец таблицы, такой как "Productname", так что это должна быть переменная:

string foo = "Productname";
var products = new { foo = "HOHOHO" };

Но это привело бы к тому, что массив ищет столбец "foo", потому что строка не будет интерпретироваться.

Как я могу вставить переменную здесь?

Как называется эта техника?

Спасибо за вашу помощь!

РЕДАКТИРОВАТЬ:

Благодаря TGH!

В сочетании с массивными БД использование NameValueCollection решит проблему:

NameValueCollection nvc = new NameValueCollection();
nvc.Add(field, (string)fieldValue);
table.Update(nvc, keyValue);

Спасибо

1 ответ

Решение

Вы не можете использовать переменные при определении свойств ваших анонимных объектов. Я бы порекомендовал вам посмотреть в Dictionary<string,string> представлять это вместо этого. Dictionary/Hashtable, вероятно, является наиболее гибким способом обойти статическую природу C#, когда дело доходит до динамических переменных.

Вы можете позволить каждому имени столбца быть ключами в словаре

Другие вопросы по тегам