1

我无法让此代码为我工作:

List<String[]> campaigns = new List<String[]>();
for(int i = 0; i < C; i++){
    campaigns.Add(new String[]{
        weekYear = something[i], 
        campaign = info[i], 
        totalBids = Total1[i], 
        highestBid = Highest[i], 
    });
}
list = campaigns.ToArray();

我很确定我需要用其他东西替换 String[],但是什么?

4

7 回答 7

2

您需要使用一些具有所需数据类型的自定义数据类型(类),该类型具有属性、weekYear、campaign、totalBids、highestBid。

   List<YourDataType> campaigns = new List<YourDataType>();

   campaigns.Add(new YourDataType{
        weekYear = something[i], 
        campaign = info[i], 
        totalBids = Total1[i], 
        highestBid = Highest[i], 
    });
于 2012-12-03T09:08:19.233 回答
1
string[] a1 = new string[] { "a1", "b1", "c1", "d1" };
string[] a2 = new string[] { "a2", "b2", "c2", "d2" };
string[] a3 = new string[] { "a3", "b3", "c3", "d3" };
List<String[]> campaigns = new List<String[]>();
for (int i = 0; i <4; i++)
        {
            campaigns.Add(new String[]{
        a1[i],a2[i],a3[i]});
        }
于 2012-12-03T09:28:58.580 回答
0

要在这里做一个数组,您需要考虑的是您的初始List值将是什么OFList将类型放在中间的类型参数<>就是您的列表的内容。有时,当你第一次开始做这类事情时,你应该在脑海中用字面的英文来思考。

所以如果你想把Campaign你的清单,我会说好的,我想要:

活动列表

代码中的哪个是List<Campaign>. 您正在以正确的方式添加列表,但您添加的类型不正确,因此希望我的回答能向您解释这一点。它不可避免地会成为一个对象列表,因此您可以拥有List<Object>然后将您喜欢的任何内容添加到此列表中。

于 2012-12-03T09:14:48.447 回答
0

编写一个包含所需成员的类,并创建一个[]该类型的数组(追加)。

或者使用匿名类型:

var list = Enumerable.Range(0, C).Select(i => new {
    weekYear = something[i], 
    campaign = info[i], 
    totalBids = Total1[i], 
    highestBid = Highest[i], 
    }).ToArray();

如果您想要ToArray()的只是一个IEnumerable<>.

于 2012-12-03T09:16:53.110 回答
0

最好的办法是使用您尝试保存的属性创建一个活动类并创建一个列表

List<Campaign> campaigns = new List<Campaign>();
for(int i = 0; i < C; i++){
campaigns.Add(new Campaign{
    weekYear = something[i], 
    campaign = info[i], 
    totalBids = Total1[i], 
    highestBid = Highest[i], 
    });
}
于 2012-12-03T09:17:35.133 回答
0

您必须创建一个包含属性的类。如下:

class MyStrings
{
    public string WeekYear { get; set; }
    public string Campaign { get; set; }
    public string TotalBids { get; set; }
    public string HighestBid { get; set; }

}

然后你可以像这样使用它:

        var campaigns = new List<MyStrings>();
        for (int i = 0; i < C; i++)
        {
            campaigns.Add(new MyStrings
            {
                WeekYear = something[i], 
                Campaign = info[i], 
                TotalBids = Total1[i], 
                HighestBid = Highest[i], 
            });
        }

我不知道你为什么想要这个,因为我没有足够的上下文

        list = campaigns.ToArray();
于 2012-12-03T09:18:20.667 回答
0

它不起作用,因为这不是您尝试添加的字符串数组

而是试试这个:

  List<dynamic> campaigns = new List<dynamic>();
  for (int i = 0; i < C; i++)
  {
    campaigns.Add(new {
      weekYear = "a", 
      campaign = "b", 
      totalBids = "c", 
      highestBid = "d", 
    });
  }
  dynamic[]  list = campaigns.ToArray();
于 2012-12-03T09:19:23.680 回答