【问题标题】:first element of the listBox c# [duplicate]listBox c#的第一个元素[重复]
【发布时间】:2018-02-22 18:25:02
【问题描述】:

我只想从列表中取出第一个元素并将其添加到文件中。我的问题是我不确定为什么函数“take”不起作用,因此无法编译。

ListBox 不包含“First”的定义,并且找不到接受“ListBox”类型的第一个参数的扩展方法“First”(您是否缺少 using 指令或程序集引用?

var firstItem = Ingredients.Take(1);

File.AppendAllText("Pizza.txt", firstItem + Environment.NewLine);

【问题讨论】:

  • 为什么不Inngredients.First()

标签: c# windows-forms-designer


【解决方案1】:

Take 将创建一个IEnumerable,其元素的数量被指定为参数。你在找First()

var firstItem = Ingredients.First();

File.AppendAllText("Pizza.txt", firstItem + Environment.NewLine);

如果列表为空First 将抛出异常。如果列表为空,FirstOrDefault 将返回 null(如果 IEnumerable 是结构,则返回类型默认值),根据您的用例,您应该决定哪个更适合您。

编辑

问题中的列表不是List<T>,而是澄清的ListBox。您可以获取Items 属性,使用Cast 获取IEnumerable<T>,然后使用Fist。我假设 ListBox 中的对象是 string 但您应该将其更改为您使用的任何类型:

listBox1.Items.Cast<string>().FirstOrDefault();  

【讨论】:

  • 即使我在添加 system.Linq 时程序仍然在抱怨,我遇到的错误是:ListBox 不包含 First 的定义,并且首先没有扩展方法.....
  • 值得指出的是,如果集合中没有项目会抛出异常
  • 同意@EhsanSajjad - 最好致电FirstOrDefault 然后检查null。但是,问题似乎与现有问题重复
  • 仍然不起作用,我正在查看类似的问题并从那里获取代码,仍然没有,仍然在抱怨
  • @BogdanDragos 您对问题的第一次迭代没有提到ListBox,只有List。你在使用 WinForms 吗?
【解决方案2】:

使用.First().FirstOrDefault()

using System.Linq; // don't forget to add this.

var firstItem = yourList.First();

【讨论】:

    猜你喜欢
    • 2021-08-21
    • 1970-01-01
    • 1970-01-01
    • 2021-03-14
    • 2015-06-07
    • 2020-06-09
    • 1970-01-01
    • 2021-08-23
    • 1970-01-01
    相关资源
    最近更新 更多