假设我有一个看起来像这样的实体:
public class Album()
{
public DateTime LastUpdated { get; set; }
public List<Picture> Pictures { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我想要做的是创建一个LastActivity
属性,该属性将返回活动的最新日期.这对于Pictures
集合来说很容易:
public DateTime LastActivity
{
get { return Pictures.Max(x => x.LastUpdated); }
}
Run Code Online (Sandbox Code Playgroud)
但是,我也想考虑实体LastUpdated
上的属性Album
.我可以使用这段代码:
public DateTime LastActivity
{
get { return Pictures.Max(x => x.LastUpdated) > this.LastUpdated
? Pictures.Max(x => x.LastUpdated)
: this.LastUpdated) };
}
Run Code Online (Sandbox Code Playgroud)
但这很糟糕,因为它会进行Max()
两次转换.有没有更好的方法来编写这段代码?
根据接受的答案,这是我提出的解决方案:
public virtual DateTime LastActivity
{
get
{
var max = Pictures.Any() ? Pictures.Max(x …
Run Code Online (Sandbox Code Playgroud) 在你提到它之前我知道这个问题之前已被问过,但自从WCF4推出以来就没有!
因此,经过大量阅读后,我认为RESTful架构是开始数据提供API的前进方向.考虑到发布WCF 4,ASP.NET MVC 2和WCF REST入门套件,现在开始实施RESTful架构的最佳方法是什么?
我:我对ASP.NET MVC非常熟悉,所以我觉得很舒服.但是,我对WCF的了解却很少.
那么WCF4还是ASP.NET MVC?(或其他类似wcf rest starter kit)?具体来说我正在寻找:
短途:
我必须显示TreeView
不同类型的项目的层次结构(),并且不确定如何在Silverlight中干净地执行此操作.在WPF中,可以直接HierarchicalDataTemplate
根据类型定义templates(),但Silverlight中不提供此功能.在Silverlight中,您必须将相同的模板应用于特定节点的所有子节点,因此您最终会得到一个单一的怪物模板,它可以处理每个可能类型的节点,应用于每个节点.
长版(带示例):
为了给出一个更具体(但是做作)的例子,考虑各种文件夹中的档案树视图,其中每个档案可以包含照片,歌曲和其他档案.每个文件夹可能包含多个子文件夹和存档.
|-Folder
|-Folder
|-Folder
|-Archive
| Photo1
| Photo2
| Song1
| Song2
|-Archive
| Photo1
| Song1
|-Archive
| Photo1
| Photo2
| Photo3
Run Code Online (Sandbox Code Playgroud)
树中的每种类型(文件夹,存档,照片,歌曲)的显示方式都不同.显而易见的解决方案似乎是HierarchicalDataTemplate
为每种类型的项目创建一个.不幸的是,我找不到一个好方法,因为你似乎必须为node(ItemsSource={Binding ...}, ItemsTemplate={StaticResource TemplateForAllChildren}
)的所有子节点指定一个模板类型.
此要求导致模板滚雪球...存档可以将照片,歌曲和档案作为子项.由于必须将单个模板应用于所有子项,因此该模板必须能够处理照片,歌曲和档案.同样,文件夹的模板必须能够处理文件夹和档案,而档案模板现在卡在其中的照片和歌曲,所以它最终成为一个可以处理照片,歌曲,档案和文件夹的巨型模板.随着更多类型的添加,它们也会被集中到一个巨大的模板中.
有没有办法干净地完成这项工作,而不会累积一个巨型模板(和相关的节点视图模型),因为不同的类型被添加到树中?
谢谢!
一些澄清:
感谢到目前为止的答案,但我认为他们可能会让我回到最初的问题.我可能误解了答案.
考虑TreeView显示:
对于歌曲:带有艺术家/标题的滚动文本框和播放按钮
对于图片:缩略图图像和星级评分控件
对于存档:存档图像,其中一个进度条显示压缩
对于文件夹:显示文件夹名称的普通标签
据我所知,实现这一目标的唯一方法是拥有一个包含滚动文本框,播放按钮,缩略图查看器,星形控件,图像控件,进度条和标签的巨型HierarchicalDataTemplate.然后,我只是选择性地隐藏除了实际应用于节点的一个或两个控件之外的所有控件.
在WPF中,我可以将模板与节点类型相关联,因此每个节点都可以使用适当的模板.我想知道在Silverlight中是否有办法做到这一点.
再次感谢!
快问,
有没有办法通过perl将命令传递到另一个命令,就像在*Nix命令行中一样?
例如:
free -m | grep Mem
我怎么能在Perl中做"管道"?
我知道 - 以前曾经问过这个问题,但是人们一直在说"你不能在Firefox中做到这一点"等等(具体来说,这个答案:用javascript禁用中间点击滚动)
......那怎么做呢? http://www.lokeshdhakar.com/projects/lightbox2/
它捕获中间点击,阻止新窗口,并触发正确的事件以打开叠加层.我对Prototype并不像其他库那样熟悉,并希望有人可以指出显而易见的.
TIA.
我有一个带有表单的jQuery对话框,我希望附加到其中一个表单元素的自动完成框浮动到对话框上方(这样如果列表超出了对话框的末尾,它就不会被切断).我有以下CSS元素应用于自动完成div:
background:none repeat scroll 0 0 white;
float:left;
position:absolute;
z-index:9999;
Run Code Online (Sandbox Code Playgroud)
它仍然会在对话框中创建一个滚动条.这是怎么回事?我看到对话框是z-index:1004; 所以我不知道为什么我的不在它上面.我正在努力实现甚至可能吗?
我需要定义自定义方法来序列化/反序列化对象.我想做类似以下的事情.
class Person
def to_yaml_type
"!example.com,2010-11-30/Person"
end
def to_yaml
"string representing person"
end
def from_yaml(yaml)
Person.load_from(yaml)
end
end
Run Code Online (Sandbox Code Playgroud)
声明序列化/反序列化的正确方法是什么?
在评论中,它说
如果源类型实现IList,则该实现用于获取指定索引处的元素.否则,此方法获取指定的元素.
字符串没有实现IList<T>
.这是否意味着O(n)
如果我宣布这样的话,这将是一个操作,
IEnumerable<char> myString = "stringy";
Run Code Online (Sandbox Code Playgroud)
?
这很好用:
int foo = bar.charAt(1) - '0';
Run Code Online (Sandbox Code Playgroud)
但这不是 - 因为bar.charAt(x)返回一个char:
int foo = bar.charAt(1);
Run Code Online (Sandbox Code Playgroud)
似乎从char中减去'0'会将其转换为整数.
为什么或如何减去字符串'0'(或者它是char?)将另一个char转换为整数?
我们从iTunes连接收到崩溃日志,这有点奇怪.
我们的应用程序长期从ApplicationDidFinishLaunching返回时遇到问题.这是因为在applicationDidFinishLaunching中做了太多工作,我们在较慢的设备上超过了20秒的时间.
为了解决这个问题,我们将所有设置代码移出ApplicationDidFinishLaunching并将其移动到一个特殊的secondaryLoadingController中.最重要的是,我们将该控制器内的设置代码移动到一个单独的线程中.
但是,我们仍然看到崩溃日志,即即使崩溃日志显示调用,我们的应用也无法及时启动[UIApplication _reportAppLaunchFinished]
.对我而言,这表明该应用程序已完成启动,只要我们想运行我们的设置代码,我们就可以自由选择.以下是崩溃日志.
谢谢你尽你所能的帮助.
Incident Identifier: 429360D5-6B02-49BE-9A0F-164DC521BE36
Hardware Model: iPod2,1
Process: XYZ [357]
Path: /var/mobile/Applications/D5038F26-CC5B-48E5-824E-090163B5C0C4/XYZ.app/XYZ
Identifier: XYZ
Version: ??? (???)
Code Type: ARM (Native)
Parent Process: launchd [1]
Date/Time: 2010-09-28 13:35:25.138 -0700
OS Version: iPhone OS 4.0 (8A293)
Report Version: 104
Exception Type: 00000020
Exception Codes: 0x8badf00d
Highlighted Thread: 0
Application Specific Information:
com.xyz.xyz failed to launch in time
elapsed total CPU time (seconds): 20.180 (user 15.910, system 4.270), 100% CPU
elapsed application CPU time (seconds): …
Run Code Online (Sandbox Code Playgroud) c# ×3
linq ×2
asp.net-mvc ×1
capture ×1
click ×1
collections ×1
comparison ×1
crash ×1
css ×1
events ×1
ienumerable ×1
iphone ×1
java ×1
javascript ×1
jquery-ui ×1
linux ×1
max ×1
perl ×1
pipe ×1
rest ×1
ruby ×1
silverlight ×1
string ×1
system ×1
treeview ×1
wcf ×1
xaml ×1
yaml ×1