如何在每个数组中保存值?

时间:2015-05-13 15:18:53

标签: c# arrays xml parsing

我是c#的新手,我试图保存从XML解析器读取的一些数据。数据被正确读取,实际上我将它们模拟如下:

liveMatches.ForEach(match => Console.WriteLine(
            match.Id.ToString(),
            match.Name,
            match.Country,
            match.Historical_Data,
            match.Fixtures,
            match.Livescore,
            match.NumberOfMatches,
            match.LatestMatchResult
            ));

但现在我想创建一个包含八个单元格的数组,这些单元格将插入控制台上显示的每个匹配内容中。 谁能告诉我怎么做?

3 个答案:

答案 0 :(得分:1)

创建一个类......

public class Match
{
   public string Id {get; set;}
   public string Name {get; set;}
   ....
}

然后,创建一个Match ...

列表
var matches = liveMatches.Select(match => new Match {
            Id = match.Id.ToString(),
            Name = match.Name,
            etc
            }).ToList();

我在这里手工打字,所以我不确定这是否正确,但它是按照这些方式进行的。

编辑:如果您无法创建类型,则可以使用...

var matches = liveMatches.Select(match => new 
            {
                Id = match.Id.ToString(),
                Name = match.Name
            }).ToList();

答案 1 :(得分:1)

尝试这样的事情

           List<List<object>> results = new List<List<object>>();
            liveMatches.ForEach(match => results.Add( new object[] {
               match.Id.ToString(),
               match.Name,
               match.Country,
               match.Historical_Data,
               match.Fixtures,
               match.Livescore,
               match.NumberOfMatches,
               match.LatestMatchResult
            }));

答案 2 :(得分:0)

Create a lambda expression with a new anonymous type at runtime

这应该回答你的问题。

基本上,您将创建一个匿名对象,但您必须将其返回到某个对象;现在,没有任何东西被分配给liveMatches的结果,所以没有任何东西出来。我会做类似的事情:

var Item = liveMatches
                  .Where(match => match != null)
                  .Select(match => new {
                  Id = match.Id.ToString(),
                  Name = match.Name
                  ...
                  )).ToList();

根据Sidewinder94的评论编辑