На всякий случай Вы используете.NET 2.0 и не имеете доступа к LINQ:
static T First<T>(IEnumerable<T> items)
{
using(IEnumerator<T> iter = items.GetEnumerator())
{
iter.MoveNext();
return iter.Current;
}
}
Это должно сделать то, что Вы ищете..., это использует дженерики так Вы для получения первого объекта на любом типе IEnumerable.
Вызов это как так:
List<string> items = new List<string>() { "A", "B", "C", "D", "E" };
string firstItem = First<string>(items);
Или
int[] items = new int[] { 1, 2, 3, 4, 5 };
int firstItem = First<int>(items);
Вы могли изменить его с готовностью достаточно для имитации.NET 3.5's IEnumerable. ElementAt () дополнительный метод:
static T ElementAt<T>(IEnumerable<T> items, int index)
{
using(IEnumerator<T> iter = items.GetEnumerator())
{
for (int i = 0; i <= index; i++, iter.MoveNext()) ;
return iter.Current;
}
}
Вызов его как так:
int[] items = { 1, 2, 3, 4, 5 };
int elemIdx = 3;
int item = ElementAt<int>(items, elemIdx);
, Конечно, если Вы делаете , имеют доступ к LINQ, затем уже существует много хороших ответов, отправленных...
Я бы посмотрел на использование полнотекстового индекса, а затем вы могли бы использовать возможности FREETEXT и CONTAINS для выполнения поиска.
РЕДАКТИРОВАТЬ: Я бы все же посмотрел на уточнение полнотекстового индекса однако поиск, чтобы продолжить другой ответ, можно использовать с помощью REPLACE.
SELECT
Artist,
Title
FROM
Songs
WHERE
REPLACE(REPLACE(REPLACE(Artist, '#',''), '*', ''), '"', '') LIKE '%Keywords%'
Вам нужно будет удалить различных персонажей. Одиночные кавычки, двойные кавычки, дефисы, точки, запятые и т. Д.
Вы можете использовать регулярные выражения в предложении where и выполнять сопоставление с чистым значением. Подробнее о регулярных выражениях в SQL здесь .
Что касается искусства, в котором вы хотите вернуть 4-ю строку для SOUL ... вам понадобится структура данных для тегов песен, и вам придется искать в теги для совпадения. Боюсь, для этого нам понадобятся дополнительные сведения о вашей структуре данных.