C#中现有对象的键值对

时间:2018-03-22 05:32:48

标签: c#

如何从任何对象具有某些值的对象获取键值对,我需要检查该键是否具有某些值,就像我们在javascript中一样:

angular.forEach($scope.openedModel.Roaster, function (value, key) {
    if (value != null)
        for (var i = 0; i < value; i++) {
            $scope.openedModel.roastersArray.push({ 'key': key, 'value': 1, 'picked': 0, 'users': {} });
        }
});

我的代码中有一个Roster对象,我希望在c#中像上面一样。有什么帮助吗?

2 个答案:

答案 0 :(得分:0)

一种解决方案可以是 -

Type type = obj.GetType(); //obj is your Rooster object
PropertyInfo[] properties = type.GetProperties();

foreach (PropertyInfo property in properties)
{
    Console.WriteLine("Name: " + property.Name + ", Value: " + property.GetValue(obj, null));
}

答案 1 :(得分:0)

<强>解答:

所以最后在c#中做了一些技巧后,我找到了解决上述问题的方法:

var Roasters = typeof(RoastersModel).GetProperties()
                        .Select(prop => new { val = prop.GetValue(userPlayerPicks[0].DraftRoaster, null), Name = prop.Name })
                        .Where(val => val.val != null).ToDictionary(x => x.Name, x => Convert.ToInt32(x.val));

这使我得到了与问题相同的最相似的对象&#34; $ scope.openedModel.roastersArray&#34;。

感谢所有贡献者!

相关问题