В дополнение к предыдущим комментариям ваш код оканчивается на "< / script>". Между "<" есть пробел и "/".
Вы можете использовать IEnumerable.First ()
или IEnumerable.FirstOrDefault ()
.
Разница в том, что First ()
сгенерирует, если элемент не найден (или если ни один элемент не соответствует условиям, если вы используете условия). FirstOrDefault ()
вернет по умолчанию (T)
( ноль
, если это ссылочный тип).
Используйте селектор FirstOrDefault.
var list = new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
var firstEven = list.FirstOrDefault(n => n % 2 == 0);
if (firstEven == 0)
Console.WriteLine("no even number");
else
Console.WriteLine("first even number is {0}", firstEven);
Просто передайте предикат для First или Метод FirstOrDefault , и он с радостью обойдет список и выберет для вас первое совпадение.
Если совпадения нет, FirstOrDefault вернет значение по умолчанию для любого типа данных в списке items.
Надеюсь, это поможет: -)
List<string> items = new List<string>();
items.Find(p => p == "blah");
или
items.Find(p => p.Contains("b"));
, но это позволяет вам определять то, что вы ищете, с помощью предиката совпадения ...
Я думаю, если вы говорите о linqToSql, то:
пример поиска учетной записи ...
DataContext dc = new DataContext();
Account item = dc.Accounts.FirstOrDefault(p => p.id == 5);
Если вам нужно убедиться, что есть только 1 элемент (выбрасывает исключение, когда их больше 1)
DataContext dc = new DataContext();
Account item = dc.Accounts.SingleOrDefault(p => p.id == 5);
typedef std::string::value_type char_t;
char_t up_char( char_t ch )
{
return std::use_facet< std::ctype< char_t > >( std::locale() ).toupper( ch );
}
std::string toupper( const std::string &src )
{
std::string result;
std::transform( src.begin(), src.end(), std::back_inserter( result ), up_char );
return result;
}
const std::string src = "test test TEST";
std::cout << toupper( src );
--121 --- 574308-- Вы можете использовать IEnumerable.First ()
или IEnumerable.FirstOrDefault ()
.
Разница в том, что First ()
сгенерирует, если элемент не найден (или если ни один элемент не соответствует условиям, если вы используете условия). FirstOrDefault ()
вернет default (T)
( null
, если это ссылочный тип).
field = myclass.getDeclaredField("myname");
field.setAccessible(true);
field.set(myinstance, newvalue);
--121 --- 2519789-- Может быть, я чего-то здесь упускаю, но обычно вызываю .SingleOrDefault ()
- это способ возврата либо одного элемента в списке, либо значение по умолчанию (null для ссылочных или обнуляемых типов), если список пуст.
It generates an exception if the list contains more than one element.
Use FirstOrDefault()
to cover the case where you could have more than one.
Просто для завершения ответа. Если вы используете синтаксис LINQ, вы можете просто обернуть его, так как он возвращает IEnumerable :
(from int x in intList
where x > 5
select x * 2).FirstOrDefault()
Есть два простых способа, в зависимости от того, хотите ли вы иметь дело с исключениями или получить значение по умолчанию.
Вы можете использовать First
или FirstOrDefault
метод расширения для получения первого результата или значение по умолчанию (T)
.
var list = new List<int> { 1, 2, 4 };
var result = list.Where(i => i == 3).First(); // throws InvalidOperationException
var result = list.Where(i => i == 3).FirstOrDefault(); // = 0
SingleOrDefault ()
- это то, что вам нужно
приветствия