【问题标题】:For loop for array which should have If condtion c#对于应该具有If条件的数组的for循环c#
【发布时间】:2019-09-25 08:30:28
【问题描述】:

我必须使用 for 循环来迭代一个数组以找到其中包含特定单词并将其添加到列表框中 String[] 结果= ["vicky","vinay@","google@","hello"]

For (l=0 ; l<= result.length; l++)
{
     If(result[l].contains("@")
    {
    Listbox.items.add(result[l]);
     }
}

这是做什么的,它只获得第一个找到的值我没有获得第二个值?

【问题讨论】:

  • 您使用的是 MySQL 还是 MS SQL Server? (答案不会一样。)
  • 我正在使用 Ms SQL 服务器
  • 然后就可以去掉标签了。
  • 完成了兄弟!你能帮我解决这个问题吗??
  • 抱歉,我不太了解 SQL Server。

标签: c# asp.net .net for-loop


【解决方案1】:

您的数据需要一个排序列。让我假设你有一个。

首先添加新列:

alter table t add column id int;

注意:id 对于可以是 null 的列来说是一个真的错误名称。那么:

with toupdate as (
      select t.*,
             row_number() over (partition by col1 order by <ordering col>) as seqnum
      from t
     )
update toupdate
    set id = (case when col1 = 1 then seqnum end);

严格来说,col1 = 0 时的值不需要更新,因为默认值为NULL。但是,如果你想要一个不同的值,我会省略where col1 = 1

【讨论】:

    【解决方案2】:

    您可以模拟部分标识列,但无法将实际的 IDENTITY 列合并到有条件工作的表中。

    如果您只需要使用增量值更新新列,则可以在过滤后的 SELECT 上使用 ROW_NUMBER()

    ;WITH CTE AS
    (
        SELECT
            T.Col1,
            T.ID,
            GeneratedID = ROW_NUMBER() OVER (ORDER BY (SELECT NULL)) -- Determine your order here
        FROM
            YourTable AS T
        WHERE
            T.Col1 IS NOT NULL
    )
    UPDATE C SET
        ID = C.GeneratedID
    FROM
        CTE AS C
    

    【讨论】:

      【解决方案3】:

      您的查询应如下所示:

       update <table_name> set id=1 where Col1=1;
       update <table_name> set id=null where Col1=0;
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-06-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-08-24
        • 1970-01-01
        • 2019-10-10
        相关资源
        最近更新 更多