Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/436.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将此循环转换为Linq.js或仅转换为Linq_Javascript_C#_Linq_Linq.js - Fatal编程技术网

Javascript 如何将此循环转换为Linq.js或仅转换为Linq

Javascript 如何将此循环转换为Linq.js或仅转换为Linq,javascript,c#,linq,linq.js,Javascript,C#,Linq,Linq.js,我的代码是用JavaScript编写的 for (var i = 0; i < tsUA.length; i++) { if (tsRU[i][0] === tsUA[i][0]) tsUA[i][2] = tsRU[i][1]; } 最好在C LINQ中使用firstOrDefault,您可以执行以下操作: var query = tsUA.Zip(tsRU, (ua, ru) => new { ua, ru })

我的代码是用JavaScript编写的

for (var i = 0; i < tsUA.length; i++) {
        if (tsRU[i][0] === tsUA[i][0])
            tsUA[i][2] = tsRU[i][1];
        }

最好在C LINQ中使用firstOrDefault,您可以执行以下操作:

var query = tsUA.Zip(tsRU, (ua, ru) => new { ua, ru })
    .Where(p => p.ua[0] == p.ru[0]);
foreach (var pair in query)
    pair.ua[2] = pair.rs[1];
注意,这里没有那么多LINQ,您正在修改对象。LINQ不是设计用来做这件事的。你要求使用FirstOrDefault毫无意义,它在这里没有位置


您可能会注意到,在这里使用LINQ并没有带来太多好处。另外,将对象保留为数组会降低可读性。为什么不创建适当的对象来表示您的数据?

显示您在linqI中所做的工作我是Linq的新成员,我想修改我的代码。我尝试这样做:var tsRU=Enumerable.fromru.selectkv=>[kv.key,kv.value].toArray;var tsUA=Enumerable.fromua.selectkv=>[kv.key,kv.value].toArray;var qq=tsRU.firstOrDefaultq=>q==tsUA.toArray;我不认为您的代码会从转换为linq中受益。因为有两个数组,所以仍然需要跟踪索引。现在很好,你说得对。结果是有一点不是我所需要的,但仍然大大改变了情况。非常感谢。在TypeScript中,它看起来是这样的:var query=tsUA.ziptsRU,ua,ru=>{ua:ua,ru:ru}。其中p=>p.ua[0]==p.ru[0]。toArray;query.forEachpair=>pair.ua[2]=pair.ru[1];