如果对象尚不存在,则创建带有特殊 属性 的对象
Create object with special property if it does not exist yet
我有一个带有 X 轴和 Y 轴的 OxyPlot
,我想在其中多次更改最大值。要更改它们,我必须先创建轴。
有没有更好的方法来编辑例如 X 轴 (AxisPosition.Bottom) 如果它存在,如果不创建一个新的?
这是我现在的代码:
if (opGraph.Axes.Any(s => s.Position == AxisPosition.Bottom))
{
OxyPlot.Wpf.Axis xAxis = opGraph.Axes.FirstOrDefault(s => s.Position == AxisPosition.Bottom);
xAxis.AbsoluteMaximum = absoluteMaximum;
}
else
{
opGraph.Axes.Add(new OxyPlot.Wpf.LinearAxis
{
Position = AxisPosition.Bottom,
AbsoluteMaximum = absoluteMaximum,
});
}
不必先调用 Any
再调用 FirstOrDefault
。这导致双重迭代。
后者单独完成工作:
OxyPlot.Wpf.Axis xAxis = opGraph.Axes.FirstOrDefault(s => s.Position == AxisPosition.Bottom);
if (xAxis != null)
{
xAxis.AbsoluteMaximum = absoluteMaximum;
}
else
{
opGraph.Axes.Add(new OxyPlot.Wpf.LinearAxis
{
Position = AxisPosition.Bottom,
AbsoluteMaximum = absoluteMaximum,
});
}
我有一个带有 X 轴和 Y 轴的 OxyPlot
,我想在其中多次更改最大值。要更改它们,我必须先创建轴。
有没有更好的方法来编辑例如 X 轴 (AxisPosition.Bottom) 如果它存在,如果不创建一个新的?
这是我现在的代码:
if (opGraph.Axes.Any(s => s.Position == AxisPosition.Bottom))
{
OxyPlot.Wpf.Axis xAxis = opGraph.Axes.FirstOrDefault(s => s.Position == AxisPosition.Bottom);
xAxis.AbsoluteMaximum = absoluteMaximum;
}
else
{
opGraph.Axes.Add(new OxyPlot.Wpf.LinearAxis
{
Position = AxisPosition.Bottom,
AbsoluteMaximum = absoluteMaximum,
});
}
不必先调用 Any
再调用 FirstOrDefault
。这导致双重迭代。
后者单独完成工作:
OxyPlot.Wpf.Axis xAxis = opGraph.Axes.FirstOrDefault(s => s.Position == AxisPosition.Bottom);
if (xAxis != null)
{
xAxis.AbsoluteMaximum = absoluteMaximum;
}
else
{
opGraph.Axes.Add(new OxyPlot.Wpf.LinearAxis
{
Position = AxisPosition.Bottom,
AbsoluteMaximum = absoluteMaximum,
});
}