C# 用C语言构建一个数组#
我无法让此代码为我工作:C# 用C语言构建一个数组#,c#,arrays,list,for-loop,misuse,C#,Arrays,List,For Loop,Misuse,我无法让此代码为我工作: 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
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();
List活动=新列表();
对于(int i=0;i
我很确定我需要用其他东西替换字符串[],但是什么呢?您需要使用一些自定义数据类型(类),它具有属性、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],
});
List活动=新列表();
活动。添加(新的数据类型){
weekYear=某物[我],
活动=信息[i],
totalBids=Total1[i],
最高出价=最高[i],
});
要在此处创建数组,您需要考虑的是初始列表的值。列表
中的type参数,您将一个类型放在
之间,它就是您的列表的类型。有时候,当你第一次开始做这类事情时,你应该在脑海中用直译英语来思考
所以,如果你想把活动
放在你的列表中,我会说,好的,我想要:
营地名单
代码中的哪个将是列表
。您正在以正确的方式添加列表,但您添加的内容不是正确的类型,因此希望我的答案能够向您解释这一点。它必然是一个对象列表,因此您可以只使用列表
,然后将任何您喜欢的内容添加到此列表中。编写一个包含所需成员的类,并创建该类型的数组(append[
)
或使用匿名类型:
var list = Enumerable.Range(0, C).Select(i => new {
weekYear = something[i],
campaign = info[i],
totalBids = Total1[i],
highestBid = Highest[i],
}).ToArray();
如果您只需要一个IEnumerable
,那么您可能不需要调用ToArray()
,最好的方法是创建一个包含您试图保存的属性的活动类,并创建一个列表
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],
});
}
List活动=新列表();
对于(int i=0;i
您必须创建一个包含属性的类。详情如下:
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<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();
List活动=新列表();
对于(int i=0;i
string[]a1=新字符串[]{“a1”、“b1”、“c1”、“d1”};
字符串[]a2=新字符串[]{“a2”、“b2”、“c2”、“d2”};
字符串[]a3=新字符串[]{“a3”、“b3”、“c3”、“d3”};
列表活动=新列表();
对于(int i=0;istring
将不具有您尝试实例化的属性,当然这应该是您使用weekYear
属性创建的对象吗?或者,如果您确实需要字符串数组,您可以省略“fieldnames”。如在活动中。添加(新字符串[]{something[i],info[i],…})
然后通过索引访问它们。我将创建一个名为活动的对象,并将其上的每个属性设置为需要的类型。此外,在这种情况下,不需要首先创建列表
,然后最终调用.ToArray()
,因为您从一开始就知道列表中会有确切的C
元素。我倾向于使用列表,因为我对C#很陌生-只使用索引效果很好,谢谢@WutzYes,我知道这一点,因为我从某个地方获取了这段代码,并且代码使用了自定义数据类型。但是我不知道如何做到这一点我自己,但现在没关系了,我成功了。
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();
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]});
}