C# 如何通过包含标签和Div(html)的ArrayList进行解析?

C# 如何通过包含标签和Div(html)的ArrayList进行解析?,c#,asp.net,C#,Asp.net,如上所述,我创建了一个数组列表,其中添加了一些标签和一个Div(HTML),如何进一步检索这些项,比如对于label,我可以使用Object类,稍后我可以将其强制转换为label类,但是c#中没有Div类,那么如何实现呢 ArrayList list = new ArrayList(); list.Add(lbl_name1); list.Add(lbl_rating1); list.Add(lbl_releasedate1); list.Add(div_movie1); 这就是我将如何将对象

如上所述,我创建了一个数组列表,其中添加了一些标签和一个Div(HTML),如何进一步检索这些项,比如对于label,我可以使用Object类,稍后我可以将其强制转换为label类,但是c#中没有Div类,那么如何实现呢

ArrayList list = new ArrayList();
list.Add(lbl_name1);
list.Add(lbl_rating1);
list.Add(lbl_releasedate1);
list.Add(div_movie1);
这就是我将如何将对象投射到标签中的方法。请让我知道我是否也做对了。

使用

foreach(在类型列表中标记lbl)
{
}
我不知道您为什么要使用
ArrayList
一个更好的替代方法是针对div的generic

——您可以使用

foreach (Label lbl in list.OfType<Label>)
{
}
该类实现该接口。如果新的自定义
Div
类也实现了
ITextControl
接口,则可以将对象列表设置为该接口的大小写,并设置
Text
属性。添加到
ArrayList
的任何其他自定义类也需要实现它。从
ITextControl
链接:

HtmlGenericControl div = new HtmlGenericControl("div");
然后,铸造将如下所示:

public class CustomTextControl : Control, ITextControl
{
    private string _text;

    public CustomTextControl() // change this to DivControl
    {
    }

    public string Text
    {
        get
        {
            return _text;
        }
        set
        {
            if (value != null)
            {
                _text = value;
            }
            else
            {
                _text = "No Value.";
            }
        }
    }

    // Provide the remaining code to implement a text control.
}

对于Div呢?我的意思是,如果列表不仅仅由标签组成?div_movie1的类型是什么?您是如何定义它的?我猜您来自Java背景,在.Net framework中有
Dictionary
类而不是
Map
。是的……然后您可以使用Dictionary类并可以存储任何东西。我已经删除了地图代码。
public class CustomTextControl : Control, ITextControl
{
    private string _text;

    public CustomTextControl() // change this to DivControl
    {
    }

    public string Text
    {
        get
        {
            return _text;
        }
        set
        {
            if (value != null)
            {
                _text = value;
            }
            else
            {
                _text = "No Value.";
            }
        }
    }

    // Provide the remaining code to implement a text control.
}
foreach (object obj in list)
{
     ITextControl text_control = (ITextControl)obj;
     text_control.Text= "Hello";
}