1

嗨,我在读取字典中给出了 id 的数据表时遇到了问题。请任何人帮助我。下面是我的代码。我有一个字典 datasourceData 我正在存储数据表。我需要为给定的 id 检索存储在字典中的数据表。

public Dictionary<Guid, DataTable> dataSourceData { get; set; }

public DataModel()
        {
            dataSourceData = new Dictionary<Guid, DataTable>();
            logger = new BasicFileLogger.Logger();
        }

public DataTable GetDataSourceDescriptionById(Guid piId)
        {
            if (piId == null || piId == Guid.Empty)
                throw new InvalidOperationException("No such datasourcedescriptionId");
            try
            {
                return dataSourceData.Values.Where(db => db.Equals(piId));
            }
            catch (Exception ex)
            {
                logger.WriteException(ex);
                throw new InvalidOperationException(ex.Message);
            }
        }

请帮忙?

4

2 回答 2

2

你想改变这条线

return dataSourceData.Values.Where(db => db.Equals(piId));

return dataSourceData[piId];
于 2012-08-24T10:07:58.827 回答
1

您可以使用密钥简单地访问它:

if(dataSourceData.ContainsKey(yourGUID))
    DataTable dt = dataSourceData[yourGUID];

您要访问yourGUID的对象在哪里,您可以检查您的字典是否包含密钥,因此您的方法可以是:GUIDGUID

public DataTable GetDataSourceDescriptionById(Guid piId)
        {
            Dictionary<Guid, DataTable> dataSourceData = new Dictionary<Guid, DataTable>();
            if (dataSourceData.ContainsKey(piId))
            {
                return dataSourceData[piId];
            }
            else
            {
                InvalidOperationException ex = new InvalidOperationException("No such datasourcedescriptionId"));
                logger.WriteException(ex);
                throw ex;
            }
        }
于 2012-08-24T10:08:46.967 回答