Ihr linq-Ausdruck gibt am Ende ein anonymen Objekt zurück. Daher können Sie die Zeichenfolge nicht als Rückgabetyp Ihrer Methode verwenden.
können Sie dynamisch verwenden als Typ
private dynamic ParseDateOfBirth(string info)
{
return info.Split(';')
.Select(n => n.Split(','))
.Select(n => new {
name = n[0].Trim(),
datetime = DateTime.ParseExact(n[1].Trim(),
"d/M/yyyy",
CultureInfo.InvariantCulture) });
}
Oder noch besser, erstellen Sie ein DTO die Daten darzustellen, Sie kehren zurück und verwenden, die
public class UserInfo
{
public string Name { set; get; }
public DateTime Datetime { set; get; }
}
private IEnumerable<UserInfo> ParseDateOfBirth(string info)
{
return info.Split(';').Select(n => n.Split(','))
.Select(n => new UserInfo {
Name = n[0].Trim(),
Datetime = DateTime.ParseExact(n[1].Trim(),
"d/M/yyyy", CultureInfo.InvariantCulture) });
}
Wenn Sie nun mit der diese Methode aufrufen Eingangs
var s = "sean oneill, 26/06/1985; matt sheridan, 22/09/1984; Jenny Hutching, 21/03/1972";
var result = ParseDateOfBirth(s);
die Variable result
wird eine Sammlung von 3seinObjekte.
Haben Sie versucht, es einfach auszuführen, um herauszufinden? –
Was meinst du? Möchten Sie, was Sie in der Abfragesyntax geschrieben haben, oder versuchen Sie, einen IEnumerable von Ihrer Methode zurückzugeben? Wenn die zweite Sie einen Typ deklarieren müssen und nur 'IEnumerable' zurückgeben. Wenn die erste dann –