如何使用具有标量值的类构建一个List <string>?</string>

时间:2014-07-12 06:13:31

标签: c# .net

我有这个代码,例如创建一个List

public static void CreateTextList(string filePath)
        {
            List<string> text;

            text = new List<string>();
            var htmlDoc = new HtmlAgilityPack.HtmlDocument();
            htmlDoc.OptionFixNestedTags = true;
            htmlDoc.Load(filePath, System.Text.Encoding.GetEncoding(65001));

            if (htmlDoc.DocumentNode != null)
            {
                var nodes = htmlDoc.DocumentNode.SelectNodes("//a/b");
                foreach (var node in nodes)
                {
                    text.Add(node.InnerText);
                }
            }
            TextList = Filters.filterNumbers(text);
        }

我还有另外两种方法也可以创建另一种方法 但是创建3个列表我想创建一个包含所有3个值的列表。

在form1的顶部,我添加了:

static List<string> test = new List<string>();
List<Name> list = new List<Name>();

在form1的底部我添加了:

public class Name
        {
            public string First { get; set; }
            public string Middle { get; set; }
            public string Last { get; set; }
        }

现在我想在CreateTextList方法中执行以下操作:

public static void CreateTextList(string filePath)
        {
            List<string> text;

            text = new List<string>();
            var htmlDoc = new HtmlAgilityPack.HtmlDocument();
            htmlDoc.OptionFixNestedTags = true;
            htmlDoc.Load(filePath, System.Text.Encoding.GetEncoding(65001));

            if (htmlDoc.DocumentNode != null)
            {
                var nodes = htmlDoc.DocumentNode.SelectNodes("//a/b");
                foreach (var node in nodes)
                {
                    text.Add(node.InnerText);
                    test.Add(new Name { First = "Brian"});
                }
            }
            TextList = Filters.filterNumbers(text);
        }

我添加的是:

test.Add(new Name { First = "Brian"});

但我收到错误:

错误3最佳重载方法匹配&#39; System.Collections.Generic.List.Add(string)&#39;有一些无效的论点

错误4参数1:无法转换为&#39; ScrollLabelTest.ListsExtractions.Name&#39;到&#39;字符串&#39;

首先如何修复错误,然后我如何通过我想构建测试列表的逻辑来实现它? 所以它将从每种方法中获取价值,最后我将拥有第一个中间最后,第一个中间最后,第一个中间最后一个......

1 个答案:

答案 0 :(得分:0)

错误3&amp; 4:您正在尝试将对象(名称)添加到字符串列表。它不可能。第二次更改

test.Add(new Name { First = "Brian"});
to
list.Add(  new Name(){First = "First",Last = "LastName",Middle = "MiddleName"});

然后你可以在最后使用Foreach遍历列表,就像这样

foreach (var value in list)
            {
             //var firstname = value.First;   
            }