有一个更好的方法吗?
string[] s = {"zero", "one", "two", "three", "four", "five"};
var x =
s
.Select((a,i) => new {Value = a, Index = i})
.Where(b => b.Value.StartsWith("t"))
.Select(c => c.Index);
Run Code Online (Sandbox Code Playgroud)
即我正在寻找一种更有效或更优雅的方式来获得符合标准的物品的位置.
我有List有150K元素.平均工作时间IndexOf()比Contains()低4倍.我试着使用List of int.对于字符串列表,IndexOf有点快.
我发现只有一个主要区别,它的属性为TargetedPatchingOptOut.MSDN告诉:
表示应用此属性的.NET Framework类库方法不太可能受到服务版本的影响,因此有资格在本机映像生成器(NGen)映像中内联.
这个属性可能是这种行为的原因吗?为什么方法Contains()没有这样的属性?
提前致谢.
编辑:
我有这样的代码:
List<int> list = CommonHelper.GetRandomList(size);
long min = long.MaxValue;
long max = 0;
long sum = 0;
foreach (var i in list)
{
m_stopwatch.Reset();
m_stopwatch.Start();
list.Contains(i); // list.IndexOf(i);
m_stopwatch.Stop();
long ticks = m_stopwatch.ElapsedTicks;
if (ticks < min)
min = ticks;
if (ticks > max)
max = ticks;
sum += ticks;
}
long averageSum = sum / size;
Run Code Online (Sandbox Code Playgroud)
编辑2:
我编写了与IndexOf()相同的代码,它的工作速度比Contains()慢.
我目前有这个代码来检查特定ID的网站URL GET选项,但是每当运行此代码时,我都会收到一个奇怪的错误: Uncaught TypeError: Undefined is not a function
这是我的代码:
<script language="JavaScript">
var familyid = "id=8978566";
var corporateid = "id=8978565";
if(window.location.indexOf(familyid) === -1)
{
document.write("Family ID not found");
}
</script>
Run Code Online (Sandbox Code Playgroud)
如果我能就这个问题得到一些指导,那将是非常棒的...我找不到使用该.indexOf()功能的类似问题
无论如何得到indexOf就像你会得到一个字符串.
output.add("1 2 3 4 5 6 7 8 9 10);
String bigger[] = output.get(i).split(" ");
int biggerWher = bigger.indexOf("10");
Run Code Online (Sandbox Code Playgroud)
我写了这段代码,但它返回错误而不编译!有什么建议?
我有一个很长的字符串(大小为60MB),我需要在其中找到有多对"<"和">".
我首先尝试了自己的方式:
char pre = '!';
int match1 = 0;
for (int j = 0; j < html.Length; j++)
{
char c = html[j];
if (pre == '<' && c == '>') //find a match
{
pre = '!';
match1++;
}
else if (pre == '!' && c == '<')
pre = '<';
}
Run Code Online (Sandbox Code Playgroud)
上面的代码在我的字符串上运行大约1000毫秒.
然后我尝试使用 string.IndexOf
int match2 = 0;
int index = -1;
do
{
index = html.IndexOf('<', index + 1);
if (index != …Run Code Online (Sandbox Code Playgroud) 我在Java中有一个ArrayList,我需要在其中查找所有出现的特定对象.方法ArrayList.indexOf(Object)只找到一个匹配项,所以我似乎需要其他东西.
我正在尝试在JQuery中编写一个if/else语句,它可以通过匹配'IN'或'OUT'(在本例中)来改变元素的类.
例如,我有几个<DIV>与class='IN-something'OR class='OUT-something'.
如果我知道确切的CSS类,下面的方法会有效,但我知道它包含'IN'或'OUT'.
所以像这样:
if ($(jRow).hasClass('IN-*'))
{jRow.attr( "class", "OUT-foo" );}
else
{jRow.attr( "class", "IN-foo");}
Run Code Online (Sandbox Code Playgroud)
想法?谢谢!
if($('#this').val().indexOf('4289')){
Do something
else
Do something.
Run Code Online (Sandbox Code Playgroud)
这仅适用于此4289,
当我尝试使用"或"添加要在其旁边编制索引的其他数字时,它不起作用.我该怎么把其他号码.例如
IndexOf('4289||78843')
Run Code Online (Sandbox Code Playgroud)
我希望这个检查这个数字,如果输入字段中的数字不是其中之一,则回显错误.
当一个人再次访问该领域时,会发生更多事情.
$('#Zip').blur(function(){
if (($(this).val().indexOf('0860') > -1)||($(this).val().indexOf('0850') > -1)){
$('#Status_Zip').html("No way.")
$(this).alterClass('*_*', 'Success')
return false;
}else{$('#Status_Code').hide()
$(this).alterClass('*_*', 'Error')
$(this).css('border-color', '#F00').css('background-color', '#FFC').effect("pulsate",{times:4},2)
return true;
}
})
Run Code Online (Sandbox Code Playgroud) 这个Java代码给我带来了麻烦:
String word = <Uses an input>
int y = 3;
char z;
do {
z = word.charAt(y);
if (z!='a' || z!='e' || z!='i' || z!='o' || z!='u')) {
for (int i = 0; i==y; i++) {
wordT = wordT + word.charAt(i);
} break;
}
} while(true);
Run Code Online (Sandbox Code Playgroud)
我想检查单词的第三个字母是否是非元音,如果是,我希望它返回非元音和前面的任何字符.如果它是一个元音,它会检查字符串中的下一个字母,如果它也是一个元音,那么它会检查下一个字母,直到它找到一个非元音.
例:
word = Jaemeas然后wordT必须= Jaem
例2:
word = Jaeoimus然后wordT必须= Jaeoim
问题在于我的if陈述,我无法弄清楚如何检查那一行中的所有元音.