Записи с тегом «C#»

Нумерация записей коллекции средствами LINQ

27.11.2011 12:25 / Артём Волк / 130 просмотров / ...

Для получения индекса элемента коллекции в LINQ существует специальная версия метода Select():

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace LINQ_Indexing
{
	class Program
	{
		static void Main(string[] args)
		{
			var data = new string[] { "First", "Second", "Third" };

			var dataWithIndex = data.Select((x, index) => new
			{
				Index = index,
				Title = x
			});

			foreach (var item in dataWithIndex)
			{
				Console.WriteLine("{0} {1}", item.Index, item.Title);
			}
		}
	}
}

Копирование (клонирование) объектов в C#

21.01.2011 18:08 / Артём Волк / 1712 просмотров / ...

В .NET, как выяснилось, нет встроенной возможности получить копию объекта. Один из способов — использование сериализации.

читать далее...

Элементы шаблонов в ASP.NET WebForms, нетривиальный data binding

01.11.2009 12:35 / Артём Волк / 3678 просмотров / ...

WebForms задумывался для создания кода, обрабатывающего события пользовательского интерфейса, однако в некоторых случаях бывает необходимо отойти от этой парадигмы и использовать кодовые вставки <%...%> в .aspx-файлах почти в стиле ASP.NET MVC.

Встроенные компоненты, использущие т.н. data binding тоже иногда заставляют задуматься :)

куча примеров

Рекурсивный поиск контролов в ASP.NET WebForms без рекурсии

01.11.2009 11:26 / Артём Волк / 807 просмотров / ...
public static Control FindControlRecursively(Control root, string id)
{
	Stack<Control> stack = new Stack<Control>();
	stack.Push(root);

	while (stack.Count > 0)
	{
		Control current = stack.Pop();
		if (current.ID == id)
		{
			return current;
		}

		foreach (Control control in current.Controls)
		{
			stack.Push(control);
		}
	}		
	return null;
}

WHERE IN ... в LINQ to SQL

31.10.2009 11:52 / Артём Волк / 885 просмотров / ...

Для того, чтобы был сгенерирован правильный SQL-запрос с WHERE IN ... нужно сделать несколько дополнительных действий:

var ids = new List<int> {1,2,3,4};
var result = from s in Db.Snippets
             where ids.Contains(s.Id)
             select s;

Групповые операции в LINQ to SQL

31.10.2009 11:35 / Артём Волк / 1255 просмотров / ...

LINQ to SQL не умеет оптизировать однотипные действия над несколькими сущностями, например, для удаления большого количества записей по условию их придётся сначала выбрать отдельным запросом, пометить как удалённые с помощью методов DeleteOnSubmit() или DeleteAllOnSubmit(), а при вызове SubmitChanges() будет сгенерировано столько SQL-запросов c DELETE, сколько было удаляемых записей.

как обойти...

Dynamic LINQ: когда мешает строгая типизация

31.10.2009 11:18 / Артём Волк / 1082 просмотра / ...

LINQ очень удобен прежде всего тем, что можно работать с типизированными данными. Но иногда это мешает, например, когда нужно сделать сортировку, зная только имя поля: типичное требование для реализации таблицы данных с сортировкой. Ситуация усложняется, когда сортировка идёт по полям связанных сущностей.

решение есть!

Полнотекстовый поиск в MS SQL Express и его использование с LINQ to SQL

31.10.2009 0:17 / Артём Волк / 4784 просмотра / ...

Для включения функции полнотекстового поиска в MS SQL редакции Express (проверялось на 2005-й версии) нужно немного больше действий, чем для использования полнотекстовых индексов в MyISAM-таблицах MySQL, но всё возможно.

пример...

Выбор значения автоинкрементного поля для вставленной записи в MS SQL

29.10.2009 8:55 / Артём Волк / 882 просмотра / ...

После INSERT нужно выполнить дополнительные действия:

	SqlCommand command = new SqlCommand(@"
		INSERT INTO [dbo].[orders]
				([date_time]
				...
				...
				,[total])
			VALUES
				(@date_time
				...
				...
				,@total); SELECT SCOPE_IDENTITY();
			");                        

	int insertedOrderId = Convert.ToInt32(command.ExecuteScalar());

Многострочные (multiline) строки в C# и JavaScript

27.10.2009 9:00 / Артём Волк / 1726 просмотров / ...

Иногда строку удобно отформатировать определённым образом, например, если она является SQL-запросом. В C# это делается добавлением символа @ перед строкой.

читать дальше...


Страница 1 из 2