C# 从列表中获取特定属性的步骤

C# 从列表中获取特定属性的步骤,c#,list,C#,List,我的清单内容如下: List<MyData> DICT_list = new List<MyData>() { new MyData{ Dictionay="Alpha", Dimension="Length", Classes=null}, new MyData{ Dictionay="Alpha", Dimension="Length", Classes="Process"}, new MyData{ Dictionay="Alpha", Dimen

我的清单内容如下:

List<MyData> DICT_list = new List<MyData>()
{
   new MyData{ Dictionay="Alpha", Dimension="Length", Classes=null},
   new MyData{ Dictionay="Alpha", Dimension="Length", Classes="Process"},
   new MyData{ Dictionay="Alpha", Dimension="breath", Classes="Activity"},
   new MyData{ Dictionay="Alpha", Dimension="Height", Classes="Workflow"},
   new MyData{ Dictionay="Beta", Dimension="Height", Classes=null},
   new MyData{ Dictionay="Beta", Dimension="Height", Classes="Workflow"},
   new MyData{ Dictionay="Beta", Dimension="Length", Classes="Workflow"}
};
任何帮助都将不胜感激

-----有问题的更新----

public struct MyData
        {
            public string Dictionary { get; set; }
            public string Dimension { get; set; }
            public string Classes { get; set; }
        }
并执行如下:

 Want to get All the Classes of Dimension=length in dictionary=ALPHA only...
var SelectedValue = DICT_list.Where(d => d.Dimension == "Length" && d.Dictionary == "Alpha").Select(d => d.Class);
                foreach (var value in SelectedValue)
                {
                    MessageBox.Show(value.ToString());
                }
我在MessageBox.showvalue.ToString行收到以下错误;作为

对象引用未设置为对象的实例

我的列表包含所需的元素,我已经通过以下命令对其进行了测试

string count = DICT_list.Count.ToString(); // Here count gives the value 14 which has the desired Dictionary and DImension name along with several classes which I need to fetch..
----------更新问题-----


我想我知道为什么会出现这个错误如果我没有错的话,因为我的新维度的类的第一个值在列表中是空的,我为这个错误的问题感到抱歉,现在通过测试知道了,我能做些什么来忽略空值并从列表中移动到下一个吗?

首先-简单地按维度和词汇过滤列表。第二,仅通过选择类从结果中投影每个项目。这将给你带来无数:

或查询语法:

var query = from d in DICT_list
            where d.Dimension == "Length" && d.Dictionay == "Aplha"
            select d.Classes;

我建议你看看@Sergey Berezovskiy给出的解决方案是否能正常工作。 这是一个证明

class Program
{
    static void Main(string[] args)
    {

        List<MyData> DICT_list = new List<MyData>()
        {
           new MyData{ Dictionay="Aplha", Dimension="Length", Classes="Process"},
           new MyData{ Dictionay="Aplha", Dimension="breath", Classes="Activity"},
           new MyData{ Dictionay="Aplha", Dimension="Height", Classes="Workflow"},
           new MyData{ Dictionay="Beta", Dimension="Height", Classes="Workflow"},
           new MyData{ Dictionay="Beta", Dimension="Length", Classes="Workflow"}
        };

        var query = DICT_list.Where(d => d.Dimension == "Length" && d.Dictionay == "Aplha")
                 .Select(d => d.Classes);

        foreach (var VARIABLE in query)
        {
            Console.WriteLine(VARIABLE.ToString());
        }


        Console.ReadLine();
    }
}

试着改写你的问题。我听不懂这个怪诞的句子。它看起来像个谜!重新措辞你的问题!DICT_list.Selectdl=>dl.Classes有帮助吗?@DominicKexel..抱歉,我已经解释了我的问题,希望你现在能理解..使用LINQ表达式可以帮助你。第一个查询中的Dictionay==Aplha需要是d.Dictionary==Aplha。。总之,dis帮不了我的忙,但它给了我字典和所有维度的数据,@Reshma对不起,你说得对,应该是d.Dictionay。您所说的是不可能的-此查询包含按维度筛选,因此无法获得所有维度。。我已经更新了我的问题,你能看一下在引导我通过它时发生的错误吗?@Reshma你选择的是d.Class而不是d.Class。即使这只是一个输入错误,您也选择了可以为空的字符串。然后,当调用value.ToString时,就会出现NullReferenceException。解决方案-因此字符串已经是字符串,您不需要调用ToString。只是显示值…非常感谢,我通过跳过空值并检查其他值使其工作,但您的解决方案,我不知道错误,感谢您的解释,我知道虽然它是基本的,我知道它很晚了,但我很高兴了解它..再次感谢您。。我已经更新了我的问题,你能看一下发生在引导我通过它的错误…哦,嗨…我想我知道为什么dis错误是来的,因为我的类的第一个值在列表中是空的,我很抱歉错误的解释,现在通过测试知道了,我能做些什么忽略空值并从列表中移动到下一个。。
class Program
{
    static void Main(string[] args)
    {

        List<MyData> DICT_list = new List<MyData>()
        {
           new MyData{ Dictionay="Aplha", Dimension="Length", Classes="Process"},
           new MyData{ Dictionay="Aplha", Dimension="breath", Classes="Activity"},
           new MyData{ Dictionay="Aplha", Dimension="Height", Classes="Workflow"},
           new MyData{ Dictionay="Beta", Dimension="Height", Classes="Workflow"},
           new MyData{ Dictionay="Beta", Dimension="Length", Classes="Workflow"}
        };

        var query = DICT_list.Where(d => d.Dimension == "Length" && d.Dictionay == "Aplha")
                 .Select(d => d.Classes);

        foreach (var VARIABLE in query)
        {
            Console.WriteLine(VARIABLE.ToString());
        }


        Console.ReadLine();
    }
}
var query = DICT_list.Where(d => d.Dimension == "Length" && d.Dictionay == 
"Aplha" && d.Classes != null).Select(d => d.Classes);