Меня заинтересовало: "Как создать словарь словарей в запросе LINQ".
Вот моя скромная попытка, которая не проверена , потому что я не являюсь LINQ-DB, потому что у меня нет IIS, потому что я не могу ввести IIS по «подлинным» причинам, о которых некоторые могут догадаться .
Пожалуйста, не стесняйтесь редактировать этот код, чтобы исправить его (если он сломался).
using System;
using System.Collections.Generic;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args) {
var registries = FetchAllRegistries();
foreach ( KeyValuePair<string, Dictionary<string,string>> domain in registries ) {
Console.WriteLine("Domain: "+domain.Key);
foreach ( KeyValuePair<string,string> entry in domain.Value ) {
Console.WriteLine(" "+entry.Key+" "+entry.Value);
}
}
}
private static Dictionary<string, Dictionary<string, string>> FetchAllRegistries() {
return db.Registries
.GroupBy(x => x.Domain)
.Select(g => g.ToDictionary(
d => d.Domain,
d => d.ToDictionary(
kv => kv.Key,
kv => kv.Value
)
))
;
}
private static Dictionary<string, Dictionary<string, string>> FetchRegistry(string domainName) {
return db.Registries
.Where(x => x.Domain == domainName)
.ToDictionary(
x => x.Key
, x => x.Value
);
}
}
}
И прости меня: эти запросы только подтверждают мое мнение о том, что LINQ ооочень уродлив, что его пострижка должна быть побрита, и его нужно учить ходить в обратном направлении. Верно: версия «длинной руки» ОЧЕНЬ более многословна, НО это также ОЧЕНЬ более очевидна. Я предполагаю, что моя точка зрения такова: «LINQ великолепен. Позор кривой обучения STEEEEEEP».
И, да, пожалуйста ... давайте все вернемся к Perl cgi-scripts. Благослови меня, отец, потому что я не могу унаследовать ... Я влюблен в простого человека. Вздох.
Приветствия. Кит.