我在这段代码上运行AQTime,我发现.IndexOf占用了16%的时间而接近80%的另一块......他们似乎使用相同的IsEqual和其他例程.被称为116,000次,插入30,000件物品.List <>对象都没有超过200个元素.(我可能错误地使用AQTime,我正在研究这个)
class PointD : IEquatable<PointD>
{
public double X, Y, Z;
bool IEquatable<PointD>.Equals(PointD other)
{
return ((X == other.X) && (Y == other.Y) && (Z == other.Z));
}
}
class PerfTest
{
readonly List<PointD> _pCoord3Points = new List<PointD>();
public int NewPoints;
public int TotalPoints;
public PerfTest()
{
NewPoints = 0;
TotalPoints = 0;
}
public int CheckPointIndexOf(PointD pt)
{
int retIndex = _pCoord3Points.IndexOf(pt);
if (retIndex < 0)
{
_pCoord3Points.Add(pt);
NewPoints++;
}
TotalPoints++;
return retIndex;
}
public int CheckPointForBreak(PointD pt) …Run Code Online (Sandbox Code Playgroud) 如何在以下代码中找到字符串数组中项的索引:
Dim arrayofitems() as String
Dim itemindex as UInteger
itemindex = arrayofitems.IndexOf("item test")
Dim itemname as String = arrayofitems(itemindex)
Run Code Online (Sandbox Code Playgroud)
我想知道如何在字符串数组中找到项的索引.(所有项目都是小写的,所以大小写无关紧要.)
可能重复:
对象数组中的indexOf方法?
我有一个遵循这种格式的javascript数组:
var arrayName = [
{id: "a", gender: "man", item: "stuff"},
{id: "b", gender: "woman", item: "stuff"},
{id: "c", gender: "man", item: "stuff"},
{id: "d", gender: "man", item: "stuff"}
];
Run Code Online (Sandbox Code Playgroud)
有没有办法可以使用array.indexOf在数组中查找索引,例如我知道"id"变量.
比如我试过;
var position = arrayName.indexOf("b");
arrayName[position].gender = "man"
Run Code Online (Sandbox Code Playgroud)
我正在使用的那一刻;
for(var i=0; i<arrayName.length; i++) {
if(arrayName[i].id == "b"){
arrayName[i].gender = "man";
}
}
Run Code Online (Sandbox Code Playgroud)
第二种技术有效,但我使用的实际数组在每个条目中有150个条目和10个项目,因此当我知道要编辑的条目的"id"时,循环遍历它似乎非常浪费.如果我可以使它工作,indexOf将是一个更清洁的方法.
我有字符串"Ärger,-Ökonom-I-Übermut-ẞ-SS",当我运行的IndexOf(" - ")我得到的23的结果如果我使用Replace的相同的字符串没有被替换.
我不明白发生了什么,所以有人可以就这个问题说清楚吗?Application Culture是在Croatian上设置的,它不是德语,框架版本是3.5.
将文化转变为德语(de-DE)并不会改变这种奇怪的行为.
以下是调试器的屏幕截图:

码:
function showlayer(name){
var size = js_array.length
var index = js_array.indexOf(name);
var plusOne = js_array[index+1];
document.write("" + name + "<br />" + js_array + "<br />" + index + "<br />" +
plusOne + "<br />" )
...
}
Run Code Online (Sandbox Code Playgroud)
输出:
301
300,299,301,290,303,304,302,310,291,306,308,305,307,292,294,295,309
-1
300
Run Code Online (Sandbox Code Playgroud)
name的所有可能值都在数组中,但由于某种原因,indexOf()永远不会找到它们.这是怎么回事?
编辑:此问题已过期,因为Polyfill示例已更新.我在这里留下这个问题仅供参考.阅读关于按位移位运算符的有用信息的正确答案.
题:
在Mozilla Array.prototype.indexOf页面的Polyfill示例中的第7行,他们对此进行评论:
var length = this.length >>> 0; // Hack to convert object.length to a UInt32
Run Code Online (Sandbox Code Playgroud)
但Mozilla上的按位移位规范明确指出运算符返回与左操作数相同类型的值:
移位运算符将其操作数转换为32位整数,并返回与左操作数相同类型的结果.
所以不应该长度接收标准的64位浮点值?或者有人能指出黑客入手的地方?
我有一个看起来像这样的json对象(由...生成)i3-msg -t get_workspaces.
[
{
"name": "1",
"urgent": false
},
{
"name": "2",
"urgent": false
},
{
"name": "something",
"urgent": false
}
]
Run Code Online (Sandbox Code Playgroud)
我试图用来jq确定列表中的哪个索引号是基于select查询的.jq有东西叫index(),但它接缝只支持字符串?
使用类似的东西i3-msg -t get_workspaces | jq '.[] | select(.name=="something")'给我我想要的对象.但我想要它的索引.在这种情况下2(从0开始计数)
这有可能jq单独使用吗?
我有一个变量activeUserName和一个变量manager1。
如何检查是否activeUserName包含至少三个字符,在manager1?(这些字符的位置无关紧要)
例如在下面的例子中,它应该返回 true,因为字符 'J'、'o' 和 'e' 在里面manager1。
var activeUserName = "JohnDoe100";
var manager1 = "JYZALoe999";
Run Code Online (Sandbox Code Playgroud)
现在我正在使用 indexOf 方法并且只查看某些位置的字符,这就是我想改变它的原因:
if (isEditor == false){
if (((activeUserName.indexOf(manager1.charAt(0)) !== -1) && (activeUserName.indexOf(manager1.charAt(2)) !== -1)) || (activeUserName.indexOf(manager1.charAt(4)) !== -1)){
// doSth();
} else if (((activeUserName.indexOf(manager2.charAt(0)) !== -1) && (activeUserName.indexOf(manager2.charAt(2)) !== -1)) || (activeUserName.indexOf(manager2.charAt(4)) !== -1)){
// doSth();
} else {
// doSth();
}
}
Run Code Online (Sandbox Code Playgroud)
我读过 Regex,但我不确定这是否可以应用在这里。
任何帮助表示赞赏!
通过使用Jsoup,我从网站解析HTML以填充ArrayList我需要从网站获取的内容.所以现在我有一个ArrayList充满字符串的东西.我想在该列表中找到包含特定字符串的索引.例如,我知道列表中的某个地方,在某个索引中,有字符串(文字)"Claude",但我似乎无法制作任何代码,找到contains"Claude"中的索引ArrayList...这里是我尝试过但返回-1(未找到):
ArrayList < String > list = new ArrayList < String > ();
String claude = "Claude";
Document doc = null;
try {
doc = Jsoup.connect("http://espn.go.com/nhl/team/stats/_/name/phi/philadelphia-flyers").get();
} catch (IOException e) {
e.printStackTrace();
}
for (Element table: doc.select("table.tablehead")) {
for (Element row: table.select("tr")) {
Elements tds = row.select("td");
if (tds.size() > 6) {
String a = tds.get(0).text() + tds.get(1).text() + tds.get(2).text() + tds.get(3).text() + tds.get(4).text() + tds.get(5).text() + tds.get(6).text();
list.add(a);
int …Run Code Online (Sandbox Code Playgroud) 考虑以下代码:
public static void Main()
{
var item = new Item { Id = 1 };
IList list = new List<Item> { item };
IList array = new[] { item };
var newItem = new Item { Id = 1 };
var lIndex = list.IndexOf(newItem);
var aIndex = array.IndexOf(newItem);
Console.WriteLine(lIndex);
Console.WriteLine(aIndex);
}
public class Item : IEquatable<Item>
{
public int Id { get; set; }
public bool Equals(Item other) => other != null && other.Id == Id;
} …Run Code Online (Sandbox Code Playgroud) indexof ×10
javascript ×4
arrays ×3
c# ×3
.net ×2
string ×2
arraylist ×1
character ×1
collections ×1
cultureinfo ×1
iequatable ×1
java ×1
jq ×1
json ×1
jsoup ×1
performance ×1
uint32 ×1
var ×1
vb.net ×1