访问包含List项中数据的对象

时间:2016-05-11 17:16:32

标签: c#

我正在开发一个程序,该程序使用* dll工具包来分析PC游戏中的交易拍卖(如ebay)。

该工具包有一个类" AuctionResponse"以下字段:

public List<AuctionInfo> AuctionInfo { get; set; }

为了访问列表,我调用以下方法:

AuctionResponse.AuctionInfo

然后我将列表数据转换为数据表。

datagrid1.DataSource = AuctionResponse.AuctionInfo;

但是,列表中的一个项目本身就是一个对象,我无法弄清楚如何直接访问它。

例如,如何访问AuctionInfo ItemData信息以进行进一步分析?该工具包已添加为参考,我无法编辑其源代码。

public class AuctionInfo

{
    public ItemData ItemData { get; set; }

    public string BidState { get; set; }

    public uint BuyNowPrice { get; set; }

    public uint CurrentBid { get; set; }

    public int Expires { get; set; }

}


public class ItemData

{
    public long AssetId { get; set; }

    public ushort Assists { get; set; }

    public List<Attribute> AttributeList { get; set; }

    public ushort CardSubTypeId { get; set; }

}

/////////////////////////////////////////////// //////////////

private async void button1_Click(object sender, EventArgs e)
    {

        var tradePileResponse = await _client.GetTradePileAsync();
        rb1.Text = string.Format("Found {0} tradepile items", 
                   tradePileResponse.AuctionInfo.Count);

        datagrid1.DataSource = tradePileResponse.AuctionInfo.ItemData;

当我添加.ItemData时出现错误:

错误CS1061&#39;列表&#39;不包含&#39; ItemData&#39;的定义没有扩展方法&#39; ItemData&#39;接受类型&#39; List&#39;的第一个参数。可以找到(你错过了使用指令或程序集引用吗?)

1 个答案:

答案 0 :(得分:0)

我想通过迭代使用foreach循环的列表来解决我的问题。出于某种原因,一些元素在循环内变得可访问。非常感谢@Sam Pearson和@Mike McCaughan的建议。

        var tResponse = await _client.GetAsync();
        foreach (var response in tResponse.ListInfo)

        dataGridtest.Rows.Add(     response.ItemData.ResourceId,
                                   response.Item,
                                   response.Date,
                                   response.Expiration,
                                   response.Status

                                   );