Как связаться с первым членом списка <yourDrawAction>? - PullRequest
0 голосов
/ 06 мая 2018
class DrawAction
{
    public Rectangle Dortgen { get; set; }
    public Brush Firca { get; set; }
    public PointF Koordinat { get; set; }
    public DrawAction(Brush color_, Rectangle rect_ )
    { Dortgen = rect_; Firca = color_; }
    public DrawAction(Brush color_)
    { Firca = color_; }
    public DrawAction (PointF k_)
    { Koordinat = k_; }
}
       n1 = new PointF(Start.X, Start.Y - (Start.X - End.X) * 173 / 100 * 2 / 3);
       n2 = new PointF(Start.X + (Start.X - End.X), Start.Y + (Start.X - End.X) * 173 / 100 * 1 / 3);
       n3 = new PointF(Start.X - (Start.X - End.X), Start.Y + (Start.X - End.X) * 173 / 100 * 1 / 3);
    ucgen.Add(new DrawAction(n1));
    ucgen.Add(new DrawAction(n2)); 
    ucgen.Add(new DrawAction(n3));
    List<DrawAction> ucgen = new List<DrawAction>();

Вот мой код. Я перечисляю пункты, чтобы использовать позже. Я хочу добраться до этих списков первым участником. Я пытался

     Point p1 = ucgen[0];

но это неправильно. Как я могу достичь этого? г

Ответы [ 2 ]

0 голосов
/ 06 мая 2018

Делая некоторые предположения о том, как структурирован ваш код (код в данном вопросе не очень полезен), я бы сказал, что проблема в том, что вы получаете DrawAction из списка и пытаетесь присвоить его Point.

Самый простой ответ: «1005 *»

PointF p1 = ucgen[0].Koordinat;

или, возможно,

DrawAction d1 = ucgen[0];

Обратите внимание, что ваш класс DrawAction использует PointF, но вы, похоже, пытаетесь получить Point. Либо измените тип переменной в коде (как я это сделал), либо приведите PointF к Point (с потерей точности), если это то, что вы намереваетесь.

Однако я должен указать, что слепой доступ к элементу 0 без проверки этого приведет к проблемам, когда список пуст. Не зная больше кода, я не смог бы дать твердую рекомендацию, кроме как предложить foreach или Linq FirstOrDefault(), как предложено пользователем9190331.

Надеюсь, это поможет

0 голосов
/ 06 мая 2018

Если вы не сделали что-то не так, как сказал @Felix Castor, вы всегда можете использовать FirstOrDefault:

var test = YourList.FirstOrDefault();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...