如果我有这两个类:我可以使用lambda为每个语法在一个语句中初始化一个对象吗?
public class StudyClass
{
public string className { get; set; }
public List<Student> students { get; set; }
}
public class Student
{
public string studentName { get; set; }
}
然后我就可以初始化StudyClass对象那样:
var classObject = GetClassData(); // returns a big object with many properties that I don't need
var studyClass= new StudyClass() {
className = classObject.className
}
foreach(var student in classObject.students)
{
studyClass.students.add(new Student() {
studentName = student.Name
});
}
是否有可能做一个更简单的方法,这样做是这样的:
var classObject = GetClassData(); // returns a big object with many properties that I don't need
var studyClass= new StudyClass() {
className = classObject.className,
students = classObject.students.ForEach...// i am stuck here
}
如果可能,这样做是否有任何性能优势或缺点?
对你的支撑风格的一点评论 - 在C#中,更多的惯例是在新行上打开和关闭花括号([Allman style](https://en.wikipedia.org/wiki/Indent_style#Allman_style)) 。而你使用的风格更像是JS支撑风格。 JS使用这种风格的原因在[这里](http:// encosia。COM /在-JavaScript的大括号放置位置的事项-AN-示例/)。在C#中tt确实不会影响任何内容,但是阅读起来很简单。 VS编辑器的默认格式可以重新排列所有大括号 - 只需按Ctrl + K,D。 – Yura
@James其实,不,Allman风格对于任何情况都不会有任何外泄。即使只有一行'if'语句体应该被置于新行上的花括号包围。尝试在VS中使用FormatDocument选项和默认的C#设置 - 它会将大括号移动到一个新行中。 – Yura
@Yura感谢您的评论。我通常正确地设置大括号的格式,我很抱歉,我没有在这里做过。最近我一直在处理Android和Java。 – NooooobDeveloper