问题列表 - 第23696页

linq除了和自定义IEqualityComparer

我正在尝试在两个字符串列表上实现自定义比较器,并使用.Except()linq方法来获取那些不是列表中的一个.我正在做自定义比较器的原因是因为我需要进行"模糊"比较,即一个列表上的一个字符串可以嵌入到另一个列表中的字符串中.

我做了以下比较

public class ItemFuzzyMatchComparer : IEqualityComparer<string>
{
    bool IEqualityComparer<string>.Equals(string x, string y)
    {
        return (x.Contains(y) || y.Contains(x));
    }

    int IEqualityComparer<string>.GetHashCode(string obj)
    {
        if (Object.ReferenceEquals(obj, null))
            return 0;
        return obj.GetHashCode();
    }
}
Run Code Online (Sandbox Code Playgroud)

当我调试时,唯一的命中断点是在GetHashCode()方法中.Equals()永远不会被触及.有任何想法吗?

c# iequalitycomparer

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

Javascript代码示例的Reactive Extensions

Microsoft已发布Javascript的Reactive Extensions.它应该使异步(和基于事件的)web-ui编程变得容易.

目前有一个视频一些教程.但是我真的能做出多酷的UI?你知道使用rx.js的任何好的演示或代码示例吗?

javascript reactive-extensions-js

7
推荐指数
1
解决办法
4281
查看次数

Delphi 2010 - 为什么我不能使用泛型类型参数声明抽象方法?

我试图在Delphi 2010中执行以下操作:

TDataConverter = class abstract
public
    function Convert<T>(const AData: T): string; virtual; abstract;
end;
Run Code Online (Sandbox Code Playgroud)

但是,我不断收到以下编译器错误:

E2533 Virtual, dynamic and message methods cannot have type parameters

我不太明白为什么我不能这样做.我可以在C#中做到这一点,例如

public abstract class DataConverter
{
    public abstract string Convert<T>(T data);
}
Run Code Online (Sandbox Code Playgroud)

有谁知道这背后的原因?

delphi generics compiler-errors delphi-2010

3
推荐指数
1
解决办法
1086
查看次数

使用前缀对查询中的所有列进行别名

是否可以在选择中使用前缀对所有列进行别名?我在Oracle数据库中有一组表需要连接在一起,并且大多数表具有相同的列名.我想有类似的东西

select MAGIC_ADD_PREFIX("PREFIX", *) from TABLE
Run Code Online (Sandbox Code Playgroud)

并有一个结果

+---------+----------+----------+
|PREFIX_ID|PREFIX_FOO|PREFIX_BAR|
+---------+----------+----------+
|...      |          |          |
Run Code Online (Sandbox Code Playgroud)

ATM我唯一能想到的就像chumsky一样

select ID PREFIX_ID, FOO PREFIX_FOO, BAR PREFIX_BAR from TABLE
Run Code Online (Sandbox Code Playgroud)

但它很丑陋,因为地狱和容易出错

====进一步解释====

这个问题

select TABLE.*,...
Run Code Online (Sandbox Code Playgroud)

是我使用java + jdbc驱动程序来检索列,java.sql.ResultSet方法(resultset.getInt("COLUMNNAME"),.getString("COLUMNNAME")...)不支持语法"TABLENAME.COLUMNAME".

如果我这样做(简化,没有错误...)

ResultSet rs = mkResultSet("select * from table_a, table_b");
rs.next();
System.out.println(rs.getInt("table_a.id"));
Run Code Online (Sandbox Code Playgroud)

我得到一个SQLException无效的列名作为消息

oracle select alias jdbc

12
推荐指数
1
解决办法
5421
查看次数

在Java中展示协方差和逆变?

请给出Java中协方差和逆变的一个很好的例子.

java covariance contravariance

100
推荐指数
2
解决办法
4万
查看次数

带有WHERE子句的LEFT OUTER JOIN

我有两张桌子.indRailType包含与我在其他表中使用的ID值配对的名称列表,以指示导轨类型.WO_BreakerRail包含日期列和轨道代码列,对应于相同的代码indRailType和其他一些数据.WO_BreakerRail对于每个日期,每种铁路类型的任何活动都有一排.所以我可以有3行日期3/19/2010,每行表示不同的轨道代码,以及发生了什么.

当我使用以下内容时LEFT OUTER JOIN,我得到一个包含所有类型轨道的表,在19行中没有任何事情发生的行中有空值.现在,这只是起作用,因为我现在只有一个日期表示在我的WO_BreakerRail表中,即19日.当我添加更多具有不同日期的行时,事情会变得混乱.

这是我的SQL语句,它现在给出了我想要的结果:

SELECT WO_BreakerRail.ID, indRailType.RailType, WO_BreakerRail.CreatedPieces, 
    WO_BreakerRail.OutsideSource, WO_BreakerRail.Charged, 
    WO_BreakerRail.Rejected, WO_BreakerRail.RejectedToCrop
FROM indRailType
LEFT OUTER JOIN WO_BreakerRail 
    ON indRailType.RailCode = WO_BreakerRail.RailCode
Run Code Online (Sandbox Code Playgroud)

现在,当我添加一个WHERE WO_BreakerRail.Date = @Date子句时,我会丢失所有JOIN没有发生的行.我不希望这样.从阅读起,听起来像是OUTER JOIN我想要的全部,但SQL Server Compact Edition不支持FULL OUTER JOINs.有没有办法解决这个问题,还是我正在寻找其他的东西?

sql-server join sql-server-ce

21
推荐指数
3
解决办法
8万
查看次数

NSString(十六进制)到字节

Objective-C中是否有将十六进制字符串转换为字节的方法?例如@"1156FFCD3430AA22"一个unsigned char array {0x11, 0x56, 0xFF, ...}.

hex byte objective-c nsstring

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

让Uploadify在C#中工作

这看起来应该很容易,但我无法让它工作.我不知道为什么不这样做.它只显示正常的文件输入.

是否有任何代码/示例来实现这一点.我很沮丧......

谢谢你们.

c# asp.net uploadify

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

新手:Elisp中的Keybindings错误

我试图对"na"函数进行简单的键绑定.当我执行(na)时,它在当前缓冲区中插入"å",它应该是,但是当我尝试第一行中描述的键绑定时,我得到错误:"错误的参数:commandp,na".我不确定它是否重要,但我也将(local-set-key)命令放在代码的末尾,但它会产生相同的错误.

现在,我确信有一个简单的解决方案.我只是看不到它= /

(local-set-key (kbd "C-c C-t") 'na)

(defun na ()
       "Liten å"
       (setq varlol "å")
       (insert varlol))
Run Code Online (Sandbox Code Playgroud)

lisp emacs elisp

3
推荐指数
1
解决办法
128
查看次数

无法使expand_aliases生效

我无法让expand_aliases在bash中生效.我尝试了很多不同的东西,没有任何作用.

这是简单的测试用例:

/bin/bash -c 'shopt -s expand_aliases; alias cdtmp="cd /tmp"; alias; cdtmp; pwd;'
Run Code Online (Sandbox Code Playgroud)

并输出:

$ /bin/bash -c 'shopt -s expand_aliases; alias cdtmp="cd /tmp"; alias; cdtmp; pwd;'
alias cdtmp='cd /tmp'
/bin/bash: cdtmp: command not found
/home/user

$ /bin/bash --version
GNU bash, version 3.2.25(1)-release (i686-redhat-linux-gnu)
Copyright (C) 2005 Free Software Foundation, Inc.
Run Code Online (Sandbox Code Playgroud)

(是的,我正在使用shopt而不是-O选项进行bash,只是为了证明它正在完成.)

有任何想法吗?

bash alias

10
推荐指数
1
解决办法
4467
查看次数