Ответы пользователя по тегу SQL
  • Номера домов в КЛАДР, C# и T-SQL

    @antonlustin
    так подойдет?
    // Передаем в качестве Value - строку c перечнем зданий из таблицы KA_DOMA
            private List<string> HousDecode(string value)
            {
                List<string> tempCollection = new List<string>();
    
                // Парс 'шифровки' домов для улицы
                string[] tmp1 = value.Split(',');
                foreach (string txt in tmp1)
                {
                    if (txt.ToUpper().IndexOf('Ч') != -1 || txt.ToUpper().IndexOf('Н') != -1)
                    {
                        string tmptxt = txt.Replace(")", "");
                        string[] v = (tmptxt.Split('(')[1]).Split('-');
                        int v1 = Convert.ToInt32(v[0]);
                        int v2 = Convert.ToInt32(v[1]);
    
                        for (int i = v1; i <= v2; i = i + 2)
                        {
                            tempCollection.Add(i.ToString().Trim());
                        }
                        continue;
                    }
                    if (txt.ToUpper().IndexOf('-') != -1)
                    {
                        string[] v = txt.Split('-');
                        int v1 = Convert.ToInt32(v[0]);
                        int v2 = Convert.ToInt32(v[1]);
    
                        for (int i = v1; i <= v2; i++)
                        {
                            tempCollection.Add(i.ToString().Trim());
                        }
                        continue;
                    }
                    tempCollection.Add(txt.Trim());
                }
                return tempCollection;
            }
    
    Ответ написан
    6 комментариев
  • Сортировка в LINQ to SQL

    @antonlustin
    как вариант можно воспользоваться рефлекшеном, правда надо будет еще подумать над оптимизацией. рефлекшен штука не быстрая.

    List<Person> list = new List<Person>();
    list.Add(new Person() { Age = 20, Name="Вася"});
    list.Add(new Person() { Age = 21, Name = "Петя" });
    list.Add(new Person() { Age = 23, Name = "Коля" });
    list.Add(new Person() { Age = 18, Name = "Саша" });
    
    PropertyInfo pi = new Person().GetType().GetProperty("Name");
                
    List<Person> sorted = list.OrderBy(p=> pi.GetValue(p, null)).ToList();
    
    Ответ написан