Под катом вариация на тему StringBuilder для интересующихся.
using System; using System.Collections.Generic; using System.Text; using System.Collections; namespace CoolProject { // Дерево строк. Соединяется в одну строку методом ToString() по аналогии со StringBuilder, // только рекурсивно и с применением форматирования, задаваемого свойством Format. public class QueryBuilder : List<QueryBuilder> { // Полезное содержимое и формат вставки дочерних объектов public string Format { get; set; } // Разделитель public string Separator { get; set; } public QueryBuilder(string format) { Format = format; } public QueryBuilder(string format, string separator, params string[] childs) { Format = format; Separator = separator; foreach (var v in childs) if (v != null) Add(v); } public QueryBuilder(string format, string separator, params QueryBuilder[] childs) { Format = format; Separator = separator; foreach (var v in childs) if (v != null) Add(v); } public override string ToString() { if (Format.Contains("{0}")) { string s; var b = new StringBuilder(); foreach (var qb in this) if ((s = qb.ToString()).Length > 0) b.Append(b.Length == 0 ? s : Separator + s); return b.Length == 0 ? string.Empty : string.Format(Format, b.ToString()); } else return Format; } public virtual QueryBuilder Add(string format) { if (string.IsNullOrEmpty(format)) return null; var item = new QueryBuilder(format); Add(item); return item; } public void AddRange(string[] formats) { foreach (string format in formats) Add(new QueryBuilder(format)); } public void AddUnique(string format) { if (!Contains(format)) Add(new QueryBuilder(format)); } public new QueryBuilder this[int index] { get { return base[index]; } } public QueryBuilder this[string index] { get { return Find(obj => obj.Format == index); } } public QueryBuilder this[params string[] indeces] { get { var qb = this; foreach (string s in indeces) qb = qb[s]; return qb; } } public bool Contains(string index) { return this[index] != null; } } }
Может, и велосипед изобрёл, х/з.
ого, очень помогло по учебе! спасибо!
ОтветитьУдалитьВсегда рад.
ОтветитьУдалитьУдивительно гармоничное смешение цифр, символов илатиницы!!
ОтветитьУдалитьЭто очень полезно.
ОтветитьУдалитьхороший отрывок, обязательно может пригодиться!
ОтветитьУдалитьПригодится. Спасибо!
ОтветитьУдалитьЗавидую людям, которые могут это «прочитать».
ОтветитьУдалитьО, возьму, пригодится:3
ОтветитьУдалитьКомменты слегка вылезли. Может и полезно, но какбэ нет примеров использования. Для своей цели наверняка нужная весчь. В ado.net есть что-то наподобие query-билдера. Создаём параметры запроса, они сразу проверяются на sql-injection. Можно вообще заюзать entity framework.
ОтветитьУдалитьВ закрома. А вы Си Шарп знаете, мне нужна помощь.
ОтветитьУдалитькопирну
ОтветитьУдалитьUtroClickClick> забыл, что надо тестировать в разных браузерах. Пофиксил. Насчёт примеров согласен, выложу в понедельник что-нибудь.
ОтветитьУдалитьAlina> Говори, поможем.
Помогите разобраться с компонентом WebBrowser.
ОтветитьУдалитьНужно отключить загрузку картинок.
Добавил в закладки, позже пригодится для одного проектика
ОтветитьУдалитьтипа интересная статья (^_^)
ОтветитьУдалить