У меня есть следующее выражение Linq
var tooDeep = shoppers
.Where(x => x.Cart.CartSuppliers.First().Name == "Supplier1")
.ToList();
Мне нужно превратить часть имени в следующую строку.
x.Cart.CartSuppliers.Name
Как часть этого я превратил выражение в строку, а затем разделил на. и удалил аргумент First (). Однако, когда я добираюсь до CartSuppliers, это возвращает массив Suppliers []. Есть ли способ получить единственный тип из этого. например. Мне нужно вернуть поставщика.
Обновление: начало работать
var fullName = m.ToString().Split(new[] { '.' }, StringSplitOptions.RemoveEmptyEntries);
// this supports the "deep graph" name - "Product.Address.City"
var fixedName = fullName.Skip(1).Take(fullName.Length - 1)
.Where(x => x != "First()")
.Select(x => System.Text.RegularExpressions.Regex.Replace(x, @"\[[0-9]+\]",""))
.ToArray();
с этим:
var prop = property.PropertyType.HasElementType ? property.PropertyType.GetElementType() property.PropertyType;
, что позволило найти отдельный тип из массива.
Спасибо