【发布时间】:2014-07-16 07:58:02
【问题描述】:
我是 C# 新手,但列表有问题。
我有一个班级留言:
public class Message
{
public int MessageId { get; set; }
public DateTime CreatedDate { get; set; }
public string Text { get; set; }
public string Autor { get; set; }
public string Source { get; set; }
}
和 MessageHandler 类:
class MessageHandler
{
private List<Message> _dummyMessages = new List<Message>()
{
new Message(){
MessageId = 1,
CreatedDate = new DateTime(2014, 5, 27),
Text = "Srpska vodoprivreda...",
Autor = "Marko Markovic",
Source = "Twitter"
},
new Message(){
MessageId = 2,
CreatedDate = new DateTime(2014, 5, 27),
Text = "Aerodrom Beograd...",
Autor = "Zoran Zoric",
Source = "B92"
}
};
public List<Message> GetLatestMessages(int nrMessagesToReturn)
{
List<Message> retVal;
retVal = this._dummyMessages.GetRange(0, nrMessagesToReturn);
return retVal;
}
//todo: Search list _dummyMessages and get Source and
//check is it equal to "Twitter"
}
我的问题是我不知道如何从 List<Message> 获取 Source :( 我是这样开始的:
public List<Message> SearchBySource()
{
List<Message> retVal;
foreach (Message m in _dummyMessages)
{
//..........
}
return retVal;
}
但是如何从 Message 中获取 Source?
我想从 Message 中获取 Source,然后检查它是不是“Twitter”,因为我想从我的列表中计算所有“Twitter”来源...
对不起,愚蠢的问题,谢谢你的帮助!!
【问题讨论】:
-
使用 linq dummyMessages.Where(x=> x.Source=="Twitter").ToList();
-
鉴于上面的 sn-ps,我不明白您为什么需要问这个问题。这是关于最基本的知识(您实际上似乎拥有)。此外:您使用的是 Visual Studio 吗?你知道智能感知吗?在您的
foreach中尝试:m. -
kostas 是对的,但是你可以像这样直接调用 count 方法:
_dummyMessages.Where(obj => obj.Source == "Twitter").Count(); -
@Koryu:直接是
_dummyMessages.Count(obj => obj.Source == "Twitter") -
@Tim 是的。好吧,有很多可能性:)