У меня есть класс Point
, который имеет несколько параметров.
Теперь у меня есть List
из Points
, который входит в определенную функцию. В качестве входного параметра я хочу указать функции, какой параметр следует использовать для определенного расчета.
Конечно, я мог бы что-то вроде
CalculateSomething(List<Point> points, List<double> points.Select(p => p.firstParameter))
, но это, очевидно, не очень умно, так как в Очки firstParameter
уже включены. Есть ли способ просто дать что-то вроде Selector
, сообщив функции, какой параметр ей следует использовать.
Было бы неплохо, если есть способ без enum
, а затем множество случаев if
. или switch-case
-структуры.
using System;
using System.Collections.Generic;
public class Point
{
public Point (...)
{ ... }
public double x;
public double y;
public double firstParameter;
public double secondParameter;
}
public class Program
{
public static void Main()
{
Point p1 = new Point(...);
Point p2 = new Point(...);
Point p3 = new Point(...);
List<Point> points = new List<Point> { p1, p2, p3 };
CalculateSomething(points, >>>SELECTOR<<<)
}
public static double CalculateSomething(List<Point> points, >>>Selector selectedParameter<<<)
{
return points[0].x / points[0].y * points[0].selectedParameter;
}
}