相关疑难解决方法(0)

string.charAt(x)或string [x]?

有什么理由我应该使用string.charAt(x)而不是括号表示法string[x]吗?

javascript string

233
推荐指数
6
解决办法
7万
查看次数

应该避免LINQ,因为它很慢吗?

我有人被告知,因为.net linq是如此之慢,我们不应该使用它,并且想知道其他人是否得出了相同的结论,例如:

花了1443ms做了1000000000比较非LINQ.
花了4944ms与LINQ做了1000000000比较.
(慢243%)

非LINQ代码:

for (int i = 0; i < 10000; i++)
{
    foreach (MyLinqTestClass1 item in lst1) //100000 items in the list
    {
        if (item.Name == "9999")
        {
            isInGroup = true;
            break;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

花了1443ms做了1000000000比较非LINQ.

LINQ代码:

for (int i = 0; i < 10000; i++)  
    isInGroup = lst1.Cast<MyLinqTestClass1>().Any(item => item.Name == "9999");  
Run Code Online (Sandbox Code Playgroud)

花了4944ms与LINQ做了1000000000比较.

我想它可以优化LINQ代码,但想到的是它很容易得到非常慢的LINQ代码,并且考虑到它不应该被使用.鉴于LINQ很慢,那么PLINQ也会很慢,NHibernate LINQ会很慢,所以不应该使用LINQ语句中的任何类型.

有没有人发现LINQ是如此之慢以至于他们希望从未使用它,或者我是否根据这样的基准做出了过于笼统的结论?

.net c# linq performance

57
推荐指数
6
解决办法
2万
查看次数

如何在javascript数组中搜索相同值的多个索引

我有一个1维数组,如:

var abc = ['a','a','b','a','c']
Run Code Online (Sandbox Code Playgroud)

现在我想要取回所有索引'a',即0,1和3.

有没有简单的解决方案?

PS

我知道IndexOfjQuery.inArray().但他们只返回了第一个匹配元素的索引

javascript arrays jquery

2
推荐指数
3
解决办法
8449
查看次数

获取一个非常大的字符串中所有出现的子字符串

像indexOf之类的东西,除了我需要找到所有索引。如果有 .indexOf 和 ,lastIndexOf ,是否应该有一个函数来获取所有索引出现的情况?我找不到。

请注意,该字符串非常大,大小约为 1MB,因此我需要最快的解决方案。

为了澄清这一点,我需要获取子字符串在字符串中出现的所有位置。

例如

var str = "foo bar foo bar"; //the real string is 1MB
var indexes = str.indexOfAll('foo'); //the function I need
console.log(indexes); //should print [0,8];
Run Code Online (Sandbox Code Playgroud)

我想到的一件事是在重复循环中使用indexOf,查找第一个单词,在索引处剪切字符串,然后再次使用indexOf,依此类推,直到找不到任何内容。我不确定性能(剪切和重新创建大字符串)。

javascript

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

标签 统计

javascript ×3

.net ×1

arrays ×1

c# ×1

jquery ×1

linq ×1

performance ×1

string ×1