问题列表 - 第1933页

如何使方法应用于ActiveRecord对象的集合

目前,如果我想将一个方法应用于一组ActiveRecord对象,我必须像这样构造调用:

messages = Message.find(:all)
csv = Message.to_csv(messages)
Run Code Online (Sandbox Code Playgroud)

如何定义方法,使其结构如此?

messages = Message.find(:all)
csv = messages.to_csv
Run Code Online (Sandbox Code Playgroud)

这是当前的型号代码:

require 'fastercsv'
class Message < ActiveRecord::Base
  def Message.to_csv(messages)
    FasterCSV.generate do |csv|
      csv << ["from","to", "received"]
      for m in messages
        csv << [m.from,m.to,m.created_at]
      end
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

ruby ruby-on-rails

9
推荐指数
2
解决办法
4536
查看次数

无限循环 - 顶部还是底部?

本着问题的精神,你的循环测试是在顶部还是底部?:

你使用哪种风格进行无限循环,为什么?

  • 而(真){}
  • do {} while(true);
  • for(;;){}
  • label:...转到标签;

c c++ coding-style

10
推荐指数
6
解决办法
3509
查看次数

在锯齿状列表的词典顺序中,所有组合的更好实现是什么?

我今天处于一个位置,我需要列举所有可能的锯齿状列表组合.例如,一种天真的方法是:

for a in [1,2,3]:
    for b in [4,5,6,7,8,9]:
        for c in [1,2]:
            yield (a,b,c)
Run Code Online (Sandbox Code Playgroud)

这是有用的,但在可以使用的列表数量方面不是通用的.这是一个更通用的方法:

from numpy import zeros, array, nonzero, max

make_subset = lambda x,y: [x[i][j] for i,j in enumerate(y)]

def combinations(items):
    num_items = [len(i) - 1 for i in items]
    state = zeros(len(items), dtype=int)
    finished = array(num_items, dtype=int)
    yield grab_items(items, state)
    while True:
        if state[-1] != num_items[-1]:
            state[-1] += 1
            yield make_subset(items, state)
        else:
            incrementable = nonzero(state != finished)[0]
            if not len(incrementable):
                raise StopIteration
            rightmost = max(incrementable) …
Run Code Online (Sandbox Code Playgroud)

python algorithm

2
推荐指数
1
解决办法
288
查看次数

清除ObservableCollection时,e.OldItems中没有项目

我这里有些东西让我措手不及.

我有一个带有项目的Ob的ObservableCollection.我还有一个附加到CollectionChanged事件的事件处理程序.

当您清除集合,将导致以e.Action的CollectionChanged事件设置为NotifyCollectionChangedAction.Reset.好的,这很正常.但奇怪的是,e.OldItems或e.NewItems都没有任何内容.我希望e.OldItems可以填充从集合中删除的所有项目.

有没有人见过这个?如果是这样,他们是如何绕过它的?

一些背景:我使用CollectionChanged事件来附加和分离另一个事件,因此如果我没有在e.OldItems中获取任何项目......我将无法从该事件中分离出来.


澄清: 我知道文档并没有完全声明它必须以这种方式行事.但对于其他所有行动,它都会告诉我它做了什么.所以,我的假设是它会告诉我......在清除/重置的情况下.


如果您希望自己重现,下面是示例代码.首先关闭xaml:

<Window
    x:Class="ObservableCollection.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="Window1"
    Height="300"
    Width="300"
>
    <StackPanel>
        <Button x:Name="addButton" Content="Add" Width="100" Height="25" Margin="10" Click="addButton_Click"/>
        <Button x:Name="moveButton" Content="Move" Width="100" Height="25" Margin="10" Click="moveButton_Click"/>
        <Button x:Name="removeButton" Content="Remove" Width="100" Height="25" Margin="10" Click="removeButton_Click"/>
        <Button x:Name="replaceButton" Content="Replace" Width="100" Height="25" Margin="10" Click="replaceButton_Click"/>
        <Button x:Name="resetButton" Content="Reset" Width="100" Height="25" Margin="10" Click="resetButton_Click"/>
    </StackPanel>
</Window>
Run Code Online (Sandbox Code Playgroud)

接下来,代码背后:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media; …
Run Code Online (Sandbox Code Playgroud)

wpf observablecollection

89
推荐指数
6
解决办法
4万
查看次数

捕获R6025纯虚拟呼叫

我目前使用未处理的异常捕获MiniDumps,__CODE__但有时我得到"R6025:纯虚函数".

我理解一个纯虚函数调用是如何发生的我只是想知道是否有可能捕获它们所以我可以在那时创建一个MiniDump.

c++ windows minidump dbghelp

15
推荐指数
2
解决办法
8566
查看次数

在多个页面上使用PHP变量

是否可以在另一个代码中使用一个页面中的变量?例如,在一个页面上提交表单,在第二页上使用PHP脚本将表单中的数据添加到MySQL表中

谢谢你的帮助

php variables

0
推荐指数
1
解决办法
2万
查看次数

两台不同计算机上的不同Interop引用不起作用

当我在计算机上添加对Microsoft.Office.Interop.Excel的引用时,Visual Studio将其添加到项目文件中:

<COMReference Include="Excel">
  <Guid>{00020813-0000-0000-C000-000000000046}</Guid>
  <VersionMajor>1</VersionMajor>
  <VersionMinor>5</VersionMinor>
  <Lcid>0</Lcid>
  <WrapperTool>primary</WrapperTool>
  <Isolated>False</Isolated>
</COMReference>
Run Code Online (Sandbox Code Playgroud)

团队中还有另一个开发人员遇到错误并需要将一个DLL文件添加到名为Interop.Excel.dll的项目中,该项目在项目文件中用以下代码替换:

<Reference Include="Interop.Excel, Version=1.5.0.0, Culture=neutral, processorArchitecture=MSIL">
  <SpecificVersion>False</SpecificVersion>
  <HintPath>My Project\Interop.Excel.dll</HintPath>
</Reference>
Run Code Online (Sandbox Code Playgroud)

这适用于我的电脑.

您能否解释两种方法之间的差异,哪种方法最好,以及如何让第一种方法在其他计算机上运行?

vb.net dll excel interop

11
推荐指数
2
解决办法
5万
查看次数

SQL:如何仅选择某列上具有唯一值的行?

万分感谢所有人的回应.不幸的是,没有一个解决方案似乎在我的最终工作,我的猜测是我提供的例子搞砸了.

所以让我再试一次.

我的表看起来像这样:

    contract    project activity
row1    1000    8000    10
row2    1000    8000    20
row3    1000    8001    10
row4    2000    9000    49
row5    2000    9001    49
row6    3000    9000    79
row7    3000    9000    78
Run Code Online (Sandbox Code Playgroud)

基本上,我正在寻找的查询将返回"2000,49"的"合同,活动",因为只有合同#2000只有一个,且只有一个唯一的活动值.

再次,感谢一百万提前,boroatel

sql-server

16
推荐指数
2
解决办法
11万
查看次数

为什么使用无限循环?

另一张海报询问了无限循环的首选语法.

后续问题:为什么在代码中使用无限循环?我通常会看到这样的结构:

for (;;) {
  int scoped_variable = getSomeValue();
  if (scoped_variable == some_value) {
    break;
  }
}
Run Code Online (Sandbox Code Playgroud)

这让你无法在foror while子句中看到scoped_variable的值."无限"循环有哪些其他用途?

c++ coding-style

8
推荐指数
4
解决办法
1万
查看次数

创建没有窗口的应用程序

如何编写可以在不打开窗口或控制台的情况下运行的C/C++应用程序?

c c++ winapi

24
推荐指数
2
解决办法
3万
查看次数