C# 在c中使用foreach动态创建链接标签#

C# 在c中使用foreach动态创建链接标签#,c#,dynamic,nullreferenceexception,linklabel,C#,Dynamic,Nullreferenceexception,Linklabel,我正在尝试使用foreach动态创建链接标签。我将每个链接标签的文本设置为一个字符串,该字符串存储在flatestgames字符串数组中,其链接存储在flatestlinks字符串数组中。 但是它在flg[i].Text=s行抛出了一个null引用异常,尽管s没有设置为null。 请帮帮我。 下面是代码片段: if (!(flatestgames == null || flatestgames.Length < 1)) { i = 0;

我正在尝试使用foreach动态创建链接标签。我将每个链接标签的文本设置为一个字符串,该字符串存储在flatestgames字符串数组中,其链接存储在flatestlinks字符串数组中。 但是它在flg[i].Text=s行抛出了一个null引用异常,尽管s没有设置为null。 请帮帮我。 下面是代码片段:

if (!(flatestgames == null || flatestgames.Length < 1))
        {
            i = 0;
            LinkLabel[] flg = new LinkLabel[10];
            foreach (string s in flatestgames)
            {
                flg[i].Text = s;
                flg[i].Links.Add(0, s.Length, flatestlinks[i]);
                Point p = new Point(43, 200 + 23 * i);
                flg[i].Location = p;
                flg[i].Visible = true;
                flg[i].Show();
                this.Controls.Add(flg[i]);
                i++;
            }
        }
if(!(flatestgames==null | | flatestgames.Length<1))
{
i=0;
LinkLabel[]flg=新的LinkLabel[10];
foreach(flatestgames中的字符串s)
{
flg[i].Text=s;
flg[i].Links.Add(0,s.长度,最扁平链接[i]);
点p=新点(43200+23*i);
flg[i].位置=p;
flg[i].可见=真;
flg[i].Show();
此.Controls.Add(flg[i]);
i++;
}
}

您确定您的
最扁平游戏阵列的长度小于10吗?您必须首先检查并声明您的:

LinkLabel[]flg=新的LinkLabel[10]

作为:

LinkLabel[]flg=新的LinkLabel[flatestgames.Length]


我想您会得到这个例外,因为在foreach中,您试图获得您声明的10个以上的实体。

try
flg[I]=new LinkLabel()在foreach循环中

if (!(flatestgames == null || flatestgames.Length < 1))
        {
            i = 0;
            LinkLabel[] flg = new LinkLabel[10];
            foreach (string s in flatestgames)
            {
                flg[i] = new LinkLabel();
                flg[i].Text = s;
                flg[i].Links.Add(0, s.Length, flatestlinks[i]);
                Point p = new Point(43, 200 + 23 * i);
                flg[i].Location = p;
                flg[i].Visible = true;
                flg[i].Show();
                this.Controls.Add(flg[i]);
                i++;
            }
        }
if(!(flatestgames==null | | flatestgames.Length<1))
{
i=0;
LinkLabel[]flg=新的LinkLabel[10];
foreach(flatestgames中的字符串s)
{
flg[i]=新链接标签();
flg[i].Text=s;
flg[i].Links.Add(0,s.长度,最扁平链接[i]);
点p=新点(43200+23*i);
flg[i].位置=p;
flg[i].可见=真;
flg[i].Show();
此.Controls.Add(flg[i]);
i++;
}
}

您应该在答案中包括他需要在foreach循环中的何处执行此操作以及原因。(这是正确的btw+1)@Prabhanbhat-你应该用更多信息更新你的问题(即更新的代码源)`LinkLabel[]flg=new LinkLabel[10];`将创建一个数组,其中all has null,
foreach(flatestgames中的字符串s){flg[i]=new LinkLabel();flg[i].Text=s;