Aşağıdaki kod satırı vardır:Durum 6
Project = x.Project == null ? null : new Model { ... }
herhangi bir yolu var mı, C# 6'da, bu kod kısaltmak için?
Birkaçına bakıyorum. örnekler ancak bu durumda daha kısa bir çözüm bulamıyorum ...
Aşağıdaki kod satırı vardır:Durum 6
Project = x.Project == null ? null : new Model { ... }
herhangi bir yolu var mı, C# 6'da, bu kod kısaltmak için?
Birkaçına bakıyorum. örnekler ancak bu durumda daha kısa bir çözüm bulamıyorum ...
.kodunuz olduğu gibi-:
Ancak üstündeki durum Sen olarak değiştirebilirsiniz
if(x != null)
Project = x.Project == null ? null : new Model { ... }
else
Project = null;
x değerini kontrol etmek eğer gerçekten varsa bir gereken bu koduna göre Olabildiğince kısa. Sınıf Project
dayanmaktadır Ancak sen
Project = x.Project?.ToModel(...);
GÜNCELLEME yapabileceği bir public Model ToModel(...) { }
yöntemi vardı: JonSkeet just mentioned olarak ayrıca .ToModel(
bir uzantısı yöntemi yapabiliriz.
public static class ExtensionMethods
{
public static Model ToModel(this Project p, ...)
{
return new Model { ... };
}
}
sözdizimi hala Linq
Project = x.Project?.ToModel(...);
Hayır, Yapabildiğiniz kadar kısa.
Project = x?.Project == null ? null : new Model { ... }
Bu daha kısa değil ... :-) –
IF koşullarına sahipseniz Göndermediğiniz kodunuzda daha kısadır. IF koşullarını sadece kullanımı ile kaldırabilirsiniz? işaret. – CathalMF
değil kısa, fakat alternatif bir çözüm kullanarak olacaktır:
Project` vardıModel m = new Project[] { x.Project }
.Where(p => p != null)
.Select(p => new Model { ... })
.FirstOrDefault();
'Bir' .ToModel (...) ' Yapabileceğin fonksiyon, ama sanırım öyle değil. –
Hayır .ToModel() var ... Evet Yeni C# 6.0 özelliklerine bakıyordum ancak bu örnek için uygulanabilecek hiçbir şey bulamadım. –
Hayır, yapabileceğiniz kadar kısa değil. – CathalMF