我想把IEnumerable<T>它分成固定大小的块.
我有这个,但由于所有列表创建/复制,它似乎不优雅:
private static IEnumerable<IEnumerable<T>> Partition<T>(this IEnumerable<T> items, int partitionSize)
{
List<T> partition = new List<T>(partitionSize);
foreach (T item in items)
{
partition.Add(item);
if (partition.Count == partitionSize)
{
yield return partition;
partition = new List<T>(partitionSize);
}
}
// Cope with items.Count % partitionSize != 0
if (partition.Count > 0) yield return partition;
}
Run Code Online (Sandbox Code Playgroud)
有没有更惯用的东西?
编辑:虽然这已被标记为Divide数组的副本到子序列数组的数组,但它不是 - 该问题涉及拆分数组,而这是关于IEnumerable<T>.此外,该问题要求填充最后一个子序列.这两个问题密切相关,但并不相同.
我有:
App与子组件Filter.<input onChange={handler}>.handler是prop是对孩子由家长设定.到目前为止都很好.
但是,只要在输入上按下某个键,它就会失去焦点.我认为它正在被摧毁并重新渲染.
如果我将Filter组件提升到一个级别并将其App驱动到该状态,那么一切都按照您的预期运行,但显然我希望能够嵌套组件并在顶层共享状态.
我想在这个更高级别调用setState导致整个事情被重新渲染,但我认为diffing算法足够聪明,以避免替换Filter子组件中的节点,从而避免模糊焦点<input>.
我做错了什么/我该如何解决这个问题?有没有更好的方法来构建它?
在这里工作JSBin:http://jsbin.com/fexoyoqi/10/edit?html,js,output
var App = React.createClass({
getInitialState: function() {
return {
items: ["Tom", "Dick", "Harry"],
filterText: ''
};
},
setFilterText: function (event) {
this.setState({filterText: event.target.value});
},
render: function () {
var filter = React.createClass({
render: function () {
return <input value={this.props.filterText} onChange={this.props.onChange}/>;
}
});
var rows = this.state.items
.filter(function (item) { …Run Code Online (Sandbox Code Playgroud) launch.sh在我们的 Create React App 中有一个文件,用于将内容发布到 CDN。那里的其中一行说export CI=true。我不知道在这种情况下“CI”是什么意思,以及它的作用。
给出一个类:
class Foo { DateTime Timestamp {get; set;} }
Run Code Online (Sandbox Code Playgroud)
......并且IObservable<Foo>,在保证单调增加 Timestamp s的情况下,如何IObservable<IList<Foo>>根据这些Timestamps 生成一个列入Lists的列表?
即每个人IList<Foo>应该有五秒钟的事件,或者其他什么.我知道我可以使用Buffer具有TimeSpan过载,但我需要花时间从事件本身,而不是挂钟.(除非有一种聪明的方式来提供一个IScheduler使用IObservable自身作为来源的.Now?)
如果我尝试使用这样的Observable.Buffer(this IObservable<Foo> source, IObservable<Foo> bufferBoundaries)重载:
IObservable<Foo> foos = //...;
var pub = foos.Publish();
var windows = pub.Select(x => new DateTime(
x.Ticks - x.Ticks % TimeSpan.FromSeconds(5).Ticks)).DistinctUntilChanged();
pub.Buffer(windows).Subscribe(x => t.Dump())); // linqpad
pub.Connect();
Run Code Online (Sandbox Code Playgroud)
...然后IList实例包含导致窗口关闭的项目,但我真的希望这个项目进入下一个窗口/缓冲区.
例如,使用时间戳,[0, 1, 10, 11, 15]您将得到块[[0], [1, …
我想重用多种UserControl类型的一些样式.
我希望一些Border控件的背景能够闪现,我希望他们都能使用相同的样式,静态资源和动画,这样它们就会同步闪烁.
为此,我在资源字典中定义了一些常用颜色,如下所示:
<SolidColorBrush x:Key="StatusErrorBackground" Color="#440000" />
Run Code Online (Sandbox Code Playgroud)
...我还在这本词典中定义了一个StoryBoard,如下所示:
<Storyboard x:Key="BackgroundAnimation">
<ColorAnimation
Storyboard.Target="{StaticResource StatusErrorBackground}"
Storyboard.TargetProperty="Color"
From="#440000"
To="#ff0000"
Duration="0:0:1"
RepeatBehavior="Forever"
AutoReverse="True"/>
</Storyboard>
Run Code Online (Sandbox Code Playgroud)
然后我将以下内容添加到顶级UserControl:
<FrameworkElement.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="CommonResources.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</FrameworkElement.Resources>
<FrameworkElement.Triggers>
<EventTrigger RoutedEvent="FrameworkElement.Loaded">
<BeginStoryboard Storyboard="{StaticResource BackgroundAnimation}"/>
</EventTrigger>
</FrameworkElement.Triggers>
Run Code Online (Sandbox Code Playgroud)
...然后在其他各种UserControls中,我重新导入ResourceDictionary上面的内容并使用{StaticResource StatusErrorBackground}for a Background.
有问题的元素是红色的(如SolidColorBrush声明中所示),但它们并没有闪烁.
也许这样做不会对有问题的元素引发相应的PropertyChanged通知,所以它们不会被重绘?或类似的东西.该Color物业SolidColorBrush是不是一个依赖项属性,但SolidColorBrush器物IAnimatable,所以很明显有神奇的事情发生在幕后这里后面我不明白.
或者是因为我在两个不同的地方导入相同的资源字典(一次在我的顶级UserControl加一次在我的孩子中)我最终得到两个独立的StaticResource引用?如果您ResourceDictionary在两个不同的控件中导入相同的文件,它是否为每个控件创建独立的资源?在这种情况下,我可以通过在应用程序级别将其拉入来解决这个问题,我猜...
谁能告诉我我做错了什么以及如何解决它?
我正在使用能够拖动内容的Gridster(http://gridster.net/)li.在我的li有一个可点击的div.
<li data-row="1" data-col="1" data-sizex="2" data-sizey="1">
<a href=' '>
<div>
content
</div>
</a>
</li>
Run Code Online (Sandbox Code Playgroud)
所以这里是我面临的问题,当我停止并释放拖动时,它将调用div中的单击,我如何只是拖动div,而不是在拖动停止和释放后调用单击.我不希望它在拖动后重定向到另一个页面(用户拖动和释放..因为当拖动时,它需要单击div,同时,div可以被点击,所以当停止并释放拖动时,它将调用点击)
$(function(){ //DOM Ready
var gridster = $(".gridster ul").gridster(
{
widget_margins: [5, 5],
widget_base_dimensions: [128, 130],
max_size_y: 2,
max_size_x: 2,
extra_cols: 6
}
).data('gridster');
//which i tried but failed
gridster.draggable.stop(){
onclick = "false";
}
// gridster.resize_widget($('.gridster li').eq(0), 1,1);
});
Run Code Online (Sandbox Code Playgroud)
或任何人都可以提供有关如何调用或使用gridster提供的功能的提示
draggable.stop:function(event,ui){}拖动停止时的回调.
我想这里会有一些实现.
最初的解决方案,但仍然没有工作
var gridster ,draggable ;
$(function () {
gridster = $(".gridster > ul").find("> li ").click(function(e){
!draggable && alert(1) …Run Code Online (Sandbox Code Playgroud) c# ×2
reactjs ×2
animation ×1
brush ×1
deployment ×1
gridster ×1
ienumerable ×1
jenkins ×1
jquery ×1
linq ×1
observable ×1
wpf ×1