【问题标题】:Remove item from being added to an array or remove an item from an array从添加到数组中删除项目或从数组中删除项目
【发布时间】:2021-10-03 07:43:49
【问题描述】:

我对数组完全不熟悉,因此我需要有关如何排除值被添加到以下变量中的帮助:

Dim columns = PL_DGV.Columns.Cast(Of DataGridViewColumn)().ToArray()

我在考虑.Where() 函数,但不确定如何将其应用于上述DataGridViewColumns 数组:

Dim columns = PL_DGV.Columns.Cast(Of DataGridViewColumn)().Where("Name <> column_name").ToArray()

我可能需要从中排除一些值,因此如果 column_name 位可以是多个值的变量会很好?

【问题讨论】:

  • 如果您不熟悉阵列,那么您应该在网上搜索有关阵列的信息。也就是说,这个问题与数组无关。 Where 方法不接受 String 并且网络上的任何研究都会向您展示这一点。寻找它的使用示例并做他们所做的事情。您可能可以在代码编辑器中单击它,然后按 F1 直接进入文档并在那里查找示例。您应该提供一个 Lambda 表达式,这是您接下来应该研究的内容。
  • 好吧,我并不是说必须使用Where,我只是尝试了一下,因为我记得在某些代码中的某处看到过它,还因为我非常了解 SQL 及其常用语法每当过滤值时使用,这就是我想要做的 - 在将值分配给 columns 变量之前过滤值。我曾尝试研究如何从数组中删除/过滤/排除一个值,甚至在删除值后转换为字符串然后返回数组,因此没有工作,因此这里的问题...
  • Where 方法在这种情况下绝对是正确的选择,但你没有正确调用它。您需要提供适当的 Lambda 表达式,因此您应该找出它是什么。该 Lambda 可以是任何计算结果为 Boolean 的东西,因此不需要使用相等比较。如果您想确定某个值是否包含在值列表中,则可以在 Lambda 中使用 Contains

标签: arrays vb.net


【解决方案1】:

LINQ:

Dim columns = (From c As DataGridViewColumn In Me.PL_DGV.Columns Where c.Name <> "column_name").ToArray

排除多个值:

Dim namesToExclude = {"Name1", "Name2"}.ToList
Dim columns  = (From c As DataGridViewColumn In Me.PL_DGV.Columns Where Not namesToExclude.Contains(c.Name)).ToArray

【讨论】:

    猜你喜欢
    • 2017-09-13
    • 2021-10-19
    • 2014-09-21
    • 2017-01-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-08
    • 2020-07-01
    相关资源
    最近更新 更多