#c# #xml
#c# #xml
Вопрос:
У меня есть класс «MsrProgram», который будет сериализован. Однако, если параметр «Number» в «MsrProgram» отличается, мне нужны другие параметры в моем XML-файле. Какой самый простой способ сделать что-то подобное?
Вот мой код:
public class MsrProgram
{
[XmlAttribute]
public string OwnerTypeFullName { get; set; }
[XmlAttribute]
public int Number { get; set; }
[XmlAttribute]
public int MsrRange { get; set; }
[XmlAttribute]
public int TurnoverMeasure { get; set; }
}
public class main
{
var toolList = (from pos in Configuration.List
select new Position
{
ToolNumber = (int)pos.tlno,
Tool =
{
ToolId = pos.tlno.ToString(),
Step =
{
Position = "1",
MsrProgram =
{
OwnerTypeFullName = "",
Number = 1,
MsrRange = "1", //When Number is 1
TurnoverMeasure = "1", //When Number is 2
}
}
}
}
}
Комментарии:
1. Вы имеете в виду оператор if?
2. Да, мне нужен оператор if. Но где я могу это сделать?
3. Используйте третичный оператор if или используйте функцию. Вы также можете преобразовать свой linq в цикл foreach, что может упростить задачу. Ваш вопрос действительно не очень понятен, хотя
Ответ №1:
Ваш код не показывает все, поэтому я не могу дать полный код, но это должно заставить вас работать:
var toolList = (from pos in Configuration.List
select new Position
{
ToolNumber = (int)pos.tlno,
Tool = new Tool
{
ToolId = pos.tlno.ToString(),
Step = new Step
{
Position = "1",
MsrProgram = new MsrProgram
{
OwnerTypeFullName = "",
Number = GetNumber(), // <- fill in what really should be used
MsrRange = GetNumber() == 1 ? 1 : 0,
TurnoverMeasure = GetNumber() == 2 ? 1 : 0
}
}
}
}
);
Я также добавил несколько new ...
инструкций, которые вы пропустили или забыли.