首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C#如何从列表中读取变量

C#如何从列表中读取变量
EN

Stack Overflow用户
提问于 2014-12-06 20:33:46
回答 5查看 94关注 0票数 0

我有一个样本列表。

代码语言:javascript
复制
            List<Reminders> remind2 = new List<Reminders>() {
               new Reminders() { Checked = true, Name_re = "Impreza" },
               new Reminders() { Checked = true, Name_re = "Impreza1" },
               new Reminders() { Checked = false, Name_re = "Impreza2" },
               new Reminders() { Checked = true, Name_re = "Impreza3" },
               new Reminders() { Checked = true, Name_re = "Impreza4" },
               new Reminders() { Checked = false, Name_re = "Impreza5" },
               new Reminders() { Checked = true, Name_re = "Impreza6" },
               new Reminders() { Checked = false, Name_re = "Impreza7" }
        };

我只有一个变量,例如"Impreza1“。

如何读取这个变量Checked = true?

EN

回答 5

Stack Overflow用户

发布于 2014-12-06 21:47:33

如果您只想要一个布尔结果,请使用linq .Any(),即

代码语言:javascript
复制
var text = "Impreza1";
bool isChecked = remind2.Any(x=>x.Name_re==text && x.Checked);

如果您想在变量为true的情况下获取该变量,请尝试以下操作:

代码语言:javascript
复制
var reminder = remind2.FirstOrDefault(x=>x.Name_re==text && x.Checked);
if(reminder!=null)
{
   //its checked..do stuff
}
票数 1
EN

Stack Overflow用户

发布于 2014-12-06 21:02:29

我认为LINQ让这件事变得非常简单:

代码语言:javascript
复制
    List<Reminders> remind2 = new List<Reminders>() {
           new Reminders() { Checked = true, Name_re = "Impreza" },
           new Reminders() { Checked = true, Name_re = "Impreza1" },
           new Reminders() { Checked = false, Name_re = "Impreza2" },
           new Reminders() { Checked = true, Name_re = "Impreza3" },
           new Reminders() { Checked = true, Name_re = "Impreza4" },
           new Reminders() { Checked = false, Name_re = "Impreza5" },
           new Reminders() { Checked = true, Name_re = "Impreza6" },
           new Reminders() { Checked = false, Name_re = "Impreza7" }
    };
    var name = "Impresa";
    var checkedWithName = from rem in remind2 where rem.Name_re == name && rem.Checked select rem/*.ToList()*/;

如果您需要单个Reminders,您可以在结果上调用Single() (http://msdn.microsoft.com/en-us/library/bb155325(v=vs.110).aspx

票数 0
EN

Stack Overflow用户

发布于 2014-12-06 21:41:46

代码语言:javascript
复制
var result = remind2.FirstorDefault(p=> p.Name_re.ToLower().Equals("Impreza1".ToLower());



bool checked = result.Checked;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27331726

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档