Hilfe!
Mina gamla .Net-böcker har inte riktigt hängt med i utvecklingen. Ska implementera FirstOrDefault men jag har aldrig använt LINQ och hittar inget begripligt på nätet. Är hyfsat nära men om det är någon som har bättre koll så kanske det fixar sig hela vägen. Nån som har någon idé? Det är det rödmarkerade det handlar om...
Metodsignatur 1:
Pseudokod 1:
Lösningsförslag 1:
Mina gamla .Net-böcker har inte riktigt hängt med i utvecklingen. Ska implementera FirstOrDefault men jag har aldrig använt LINQ och hittar inget begripligt på nätet. Är hyfsat nära men om det är någon som har bättre koll så kanske det fixar sig hela vägen. Nån som har någon idé? Det är det rödmarkerade det handlar om...
Metodsignatur 1:
Code:
public static TSource FirstOrDefault<TSource>(
this IEnumerable<TSource> source)
Pseudokod 1:
Code:
If source is null, throw an ArgumentNullException.
If the source sequence implements IList<T>, then
If the source sequence is empty return default(TSource);.
Return source[0]. (performance optomization)
Else Iterate the source sequence.
If there is no first element, return default(TSource);.
Return the first (current element) element.
Lösningsförslag 1:
Code:
public static TSource FirstOrDefault<TSource>(
this IEnumerable<TSource> source)
{
if (source == null)
throw new ArgumentNullException();
if (source is IList<TSource>)
{
if (source.Count<TSource>() == 0)
return default(TSource);
return source.ElementAt<TSource>(0);
}
else
[COLOR="red"]foreach (TSource element in source)
//om det inte finns något element i source kommer aldrig foreach
//att köras, hur ska jag då kunna iterera igenom source?
{
if(element == null)
return (TSource)source.DefaultIfEmpty<TSource>();
else
return element;[/COLOR]
}
}
Last edited:



