加入不同类型的项目到列表中的.Net [英] Add items of different type into list in .Net
问题描述
我想要添加项目到列表(项不同类型的)。下面是我怎么做。
I'm trying to add items into list (items are of different types). Here is how I'm doing it.
private List<JiraIssues> GetIssues(string result)
{
string x = null;
var summary = x;
List<JiraIssues> returnResulttoReport = new List<JiraIssues>();
RootObject myresult = JsonConvert.DeserializeObject<RootObject>(result);
foreach (var item in myresult.issues)
{
Console.WriteLine(item.fields.summary);
summary = item.fields.summary;
foreach (var commentitem in item.fields.comment.comments)
{
var authorname = commentitem.author.name;
Console.WriteLine(commentitem.author.name);
}
}
/*var vnlist = (from up in spcall
where up.Caption == "Contacted"
select new JiraIssues
{
summary,
authorname,
ActualDate,
Value = up.Value
}).ToList();*/
returnResulttoReport.AddRange(summary,authorname);
return returnResulttoReport ;
}
获取误差;
Getting error as;
的AddRange不能把2个参数。
AddRange can not take 2 arguments.
有关更好的可见性,我把我的JiraIssues这里:
For better visibility I'm putting my JiraIssues here:
[DataContract]
public class JiraIssues
{
public JiraIssues()
{
Comments = new List<JiraComment>();
//Components = new List<JiraComponent>();
}
[DataMember(Order = 0)]
public string IssueKey;
[DataMember(Order = 1)]
public string Id;
[DataMember(Order = 2)]
public string Description;
[DataMember(Order = 3)]
public string Assignee;
[DataMember(Order = 4)]
public DateTime? Created;
[DataMember(Order = 5)]
public DateTime? Duedate;
[DataMember(Order = 6)]
public string Environment;
[DataMember(Order = 7)]
public string Priority;
[DataMember(Order = 8)]
public string Project;
[DataMember(Order = 9)]
public string Reporter;
[DataMember(Order = 10)]
public string Resolution;
[DataMember(Order = 11)]
public string Status;
[DataMember(Order = 12)]
public string Summary;
[DataMember(Order = 13)]
public string IssueType;
[DataMember(Order = 14)]
public DateTime? Updated;
[DataMember(Order = 15)]
public long? Votes;
[DataMember(Order = 16)]
public string Components;
[DataMember(Order = 17)]
public List<JiraComment> Comments;
}
[DataContract]
public class JiraComment
{
[DataMember(Order = 0)]
public string CommentBody;
[DataMember(Order = 1)]
public string CommentAuthor;
[DataMember(Order = 2)]
public DateTime? CommentCreated;
[DataMember(Order = 3)]
public string CommentUpdateAuthor;
[DataMember(Order = 4)]
public DateTime? CommentUpdated;
[DataMember(Order = 5)]
public string CommentId;
[DataMember(Order = 6)]
public string CommentGroupLevel;
[DataMember(Order = 7)]
public string CommentParentKeyId;
[DataMember(Order = 8)]
public string CommentParentId;
}
我怎样才能解决售后服务做到这一点?我需要添加和报酬方法的所有字符串。
How can I slove do this? I need to add and return all the strings from method.
推荐答案
有几个问题。首先,调用 的AddRange
。这需要一个枚举的,像一个数组:
There are several issues. First, the call to AddRange
. That takes an enumerable, like an array:
returnResulttoReport.AddRange(new string[] { summary, authorname });
其次,最重要的是,该列表的类型,名单,其中,JiraIssues&GT;
,添加键入的字符串(与项目不符
)。你不能做到这一点。这意味着上述code将无法正常工作......你的可以的更改列表的类型名单,其中,对象&gt;
,但这将使它不强类型的,我不建议这样做。
Second and most importantly, the type of the list, List<JiraIssues>
, is incompatible with the items you add (of type string
). You can't do that. That means the above code won't work... You can change the type of the list to List<object>
, but that will make it not strongly-typed and I don't recommend to do that.
相反,你应该找到一种方法来转换字符串到 JiraIssues
实例,或者把它放在另一种类型的列表。
Instead, you should find a way to convert the string to a JiraIssues
instance, or maybe put it in a list of another type.
假设 JiraIssues
有一个摘要
和申请人
财产,那么你可以做:
Let's assume JiraIssues
has a Summary
and Assignee
property, then you could do:
returnResulttoReport.Add(new JiraIssues() { Summary = summary, Assignee = authorname });
这篇关于加入不同类型的项目到列表中的.Net的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!