c# - 如何将List <string>中的项目放入List <object>

时间:2016-03-04 21:45:31

标签: c#

我试图将类型字符串列表中的所有项目放入类型对象列表中。

这是我的班级:

df.ix[len(df)] = ['Total', df.INCOME.sum()]

>>> df
                 SOURCE OF BUSINESS   INCOME
0                       BYD - Other      500
1                      BYD - Retail     1584
2                   BYD - Transport    42498
3         BYD Beverage - A La Carte  39401.5
4   BYD Food - A La Carte _______      68365
5       BYD Food - Catering Banquet    53796
6                    BYD Rooms ____     5148
7                       GS - Retail      386
8              GS Food - A La Carte       48
9                    Orchard Retail      130
10          SCH - Food - A La Carte       96
11                     SCH - Retail    375.4
12                  SCH - Transport      888
13        SCH Beverage - A La Carte      119
14                              Spa     3052
15        XLM Beverage - A La Carte       38
16                            Total   216425

我尝试了以下内容(某些类型字符串列表,我试图将元素添加到我的新类型对象列表中):

public class Object
{
    public string url;
    public bool case;
    public void Add(string item)
    {
        url = item;
    }
}

List<Object> finals = something.OfType<Object>().ToList();

我想要的是&#34; url&#34;从我的对象类到与List中的每个元素相等,&#34; case&#34;为所有人设置为false。

我希望我足够清楚。提前谢谢!

4 个答案:

答案 0 :(得分:2)

首先,您需要创建Object的实例,然后将其添加到列表中。 默认情况下,属性case为false。

List<Object> finals = new List<Object>(); 
foreach(var item in something)
{
    var newObject = new Object(item);
    finals.Add(newObject);
}

答案 1 :(得分:2)

在您的情况下,您可以使用LINQ轻松实现这一点。

List<Object> finals = something.Select(s => new Object(s)).ToList();

bool的默认值为false,因此您不需要任何特定的设置器。

答案 2 :(得分:2)

以下是您的案例特有的代码:

IEnumerable<Object> finals = strings.Select(s => new Object() { url = s });

case属性默认为false,因此您无需明确输入。

答案 3 :(得分:1)

获取字符串列表中的每个项目,循环遍历它们并返回具有两个属性url和case的对象列表。将case设置为false。 Yield return将返回一个可枚举的对象接口。

public class MyObject {
    public string url { get; set; }
    public bool case { get; set; }
}

public IEnumerable<MyObject> process(List<string> listOfUrls) {
    foreach(var item in listofUrls) {
        yield return new MyObject {
            url = item;
            case = false;
        }
    }
}