我有按特定顺序填充的List集合(要求是,此顺序无法更改).此列表包含实体类型对象.
在列表的初始填充之后,我需要插入更多来自另一个数据源的对象.需要将这些对象插入特定位置,以便排序正确.
例如,如果初始列表具有以下元素
初始填充后我想插入"ABB"元素,需要插入3到4之间.
目前,我有以下方法为新元素找到正确的位置.
private static int FindPositionForArticle(string word)
{
string key = word.ToLower();
for (int i = word.Length; i >= 0; i--)
{
if(i < word.Length)
key = key.Remove(i, 1);
int pos = 0;
int insertPos = 0;
foreach(ArticleEntity article in list)
{
if(article.Text.ToLower().StartsWith(key))
insertPos = pos;
else if (!article.Text.ToLower().StartsWith(key) && insertPos > 0)
return insertPos++;
pos++;
}
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
这种方法背后的目的是:
拿出需要插入的"单词",尝试找到与"单词"同名的元素的位置
如果未找到任何内容,请从"单词"中删除最后一个字符并再次搜索.
重复删除最后一个字符,直到找到最佳位置.
不幸的是我的方法有bug(实现不正确).目前我的方法表明最佳位置为0,这是完全错误的.
如果您想使用我的示例代码,您可以在以下位置下载:
http://dl.getdropbox.com/u/204110/FindPosition.cs.txt
先感谢您.
我想编写一个Ruby on Rails应用程序,它使用RESTful Web服务API对结果执行一些逻辑,然后在我的视图上显示该数据.例如,假设我想编写一个在search.twitter.com上搜索的程序.使用纯ruby我可能会创建以下方法:
def run(search_term='', last_id=0)
@results = []
url = URI.parse("http://search.twitter.com")
res = Net::HTTP.start(url.host, url.port) do |http|
http.get("/search.json?q=#{search_term}&since_id=#{last_id.to_s}")
end
@results = JSON.parse res.body
end
Run Code Online (Sandbox Code Playgroud)
我很想把这个方法作为私有方法放到我的Rails控制器中,但我的一部分认为有更好的,更"Rails"的方法来做到这一点.有最佳实践方法还是这是最好的方法?
我正在调查加密算法 - 有人可以快速了解Rijndael和AES之间的差异吗?
C#有一个类似于lint的工具吗?我有编译器标记警告 - 作为错误,我有Stylecop,但这些只能捕获最令人震惊的错误.有没有其他必备工具(特别是像我这样的新手C#ers)指出我正在做的可能是愚蠢的事情?
我正在搞乱汇编语言编程,我很好奇我如何使用逻辑运算符AND来判断数字是否为4的倍数?
我知道如何使用"div"或"remaining"指令来完成它,但我试图用数字/字的位操作来做到这一点.
谁能指出我正确的方向?我正在使用MIP,但语言无关的答案很好.
我是SQL的新手,所以希望有人可以为我拼出这个.我尝试按照"在SQL查询中替换多个字符串"的帖子,但我被卡住了.
我正在尝试做与上述发布的发起人相同的事情,但使用不同的表和不同的字段.假设ShiptoPlant表" BTST" 中的以下字段" " 有三条记录(我的表实际上有数千条记录)......
表名:BTST
---------------
| ShiptoPlant |
| ----------- |
| Plant #1 |
| Plant - 2 |
| Plant/3 |
---------------
Run Code Online (Sandbox Code Playgroud)
这是我在SQL屏幕中输入的内容:
SELECT CASE WHEN ShipToPlant IN ("#", "-", "/") Then ""
ELSE ShipToPlant END FROM BTST;
Run Code Online (Sandbox Code Playgroud)
我一直收到消息(错误3075)...
"Syntax error (missing operator) in query expression
'CASE WHEN ShiptoPlant IN (";","/"," ") Then "" ELSE ShipToPlant END'."
Run Code Online (Sandbox Code Playgroud)
我想对键盘上的每个字符执行此操作,但"*"由于它是通配符.
您将提供的任何帮助将不胜感激!
编辑:从评论中添加的背景信息
我收集了2008日历年度每个14家供应商的项目发票级数据.我正在尝试规范供应商提供给我们的工厂名称.
每个供应商可以通过不同的名称来呼叫工厂,例如
供应商可以调用我们的主列表上的Signode服务
Signode Service
Signode - Service.
SignodeSvc …Run Code Online (Sandbox Code Playgroud) 我正在编写一个Python程序来查找和删除文件夹中的重复文件.
我有多个mp3文件副本和一些其他文件.我正在使用sh1算法.
如何找到这些重复文件并将其删除?
在Action Script 3中,您可以编写一个定义动态对象的类(MovieClip和Object是两个示例),可以在运行时修改此对象.我想知道是否有某种方式(当然是在运行时)知道某个对象是否是动态的.
PS:没有这样的东西:
function isDynamic(object) {
try {
object.newProperty = 'someValue'
} catch (e) {
return false
}
return true
}
Run Code Online (Sandbox Code Playgroud) 我可以
public class MyGenericClass : DL
//but i cannot do
public class MyGenericClass <T> : T
Run Code Online (Sandbox Code Playgroud)
我怎么做第二个?如果我不能那样做,我该怎么办呢
public class MyGenericClass <T>
{
T obj;
//have all MyGenericClass.XYZ call obj.XYZ
}
Run Code Online (Sandbox Code Playgroud) c# ×3
.net ×2
access-vba ×1
algorithm ×1
apache-flex ×1
assembly ×1
duplicates ×1
dynamic ×1
encryption ×1
file ×1
flash ×1
generics ×1
inheritance ×1
lint ×1
list ×1
ms-access ×1
oop ×1
python ×1
replace ×1
rest ×1
security ×1
sorting ×1
sql ×1
vba ×1
xslt ×1