我正在尝试在两个字符串列表上实现自定义比较器,并使用.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()永远不会被触及.有任何想法吗?
Microsoft已发布Javascript的Reactive Extensions.它应该使异步(和基于事件的)web-ui编程变得容易.
我试图在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)
有谁知道这背后的原因?
是否可以在选择中使用前缀对所有列进行别名?我在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
无效的列名作为消息
我有两张桌子.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 JOIN
s.有没有办法解决这个问题,还是我正在寻找其他的东西?
Objective-C中是否有将十六进制字符串转换为字节的方法?例如@"1156FFCD3430AA22"
一个unsigned char array {0x11, 0x56, 0xFF, ...}
.
这看起来应该很容易,但我无法让它工作.我不知道为什么不这样做.它只显示正常的文件输入.
是否有任何代码/示例来实现这一点.我很沮丧......
谢谢你们.
我试图对"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) 我无法让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,只是为了证明它正在完成.)
有任何想法吗?
alias ×2
c# ×2
asp.net ×1
bash ×1
byte ×1
covariance ×1
delphi ×1
delphi-2010 ×1
elisp ×1
emacs ×1
generics ×1
hex ×1
java ×1
javascript ×1
jdbc ×1
join ×1
lisp ×1
nsstring ×1
objective-c ×1
oracle ×1
select ×1
sql-server ×1
uploadify ×1