動くコード図鑑技術記事現場の渡り方キャリア論すべての記事About
C#

俺が TypeScript に出会った朝 — LINQ が見当たらない焦り

出典: C# LINQ → TypeScript Array methods 翻訳早見表 — Where/Select/GroupBy が filter/map/reduce にどう写るか俺が TypeScript に出会った朝 — LINQ が見当たらない焦り

俺が TypeScript に出会った朝 — LINQ が見当たらない焦り (csharp)#d65472f31257
var names = products
    .Where(p => p.Price >= 1000)
    .Select(p => p.Name)
    .ToList();
▸ この snippet は実行結果未収録
▸ 実行結果は未収録です
  • id: #d65472f31257
  • lines: 4
  • extracted: 2026-06-10

Source収録記事

この snippet は記事の「俺が TypeScript に出会った朝 — LINQ が見当たらない焦り」セクションに登場する。コードの前後の文脈・ハマりどころの解説は記事本文で。

同じ記事から

8
TypeScript
const names = products
    .filter(p => p.price >= 1000)
    .map(p => p.name);
未収録

俺が TypeScript に出会った朝 — LINQ が見当たらない焦り

#606a4b394059
TypeScript
// TypeScript: GroupBy 相当を reduce で自前実装
type Product = { category: string; name: string; price: number };
const grouped = products.reduce<Record<string, Product[]>>((acc, p) => {
    (acc[p.category] ??= []).push(p);
未収録

対応 4: GroupBy ↔ reduce or Object.groupBy (★最大の罠)

#ec875f568913
TypeScript
// TypeScript: sort は破壊的・元の products も並び変わる
products.sort((a, b) => a.price - b.price);
// 元配列を変えたくない場合は spread で新配列を作る
const sorted = [...products].sort((a, b) => a.price - b.price);
未収録

対応 5: OrderBy ↔ sort (★破壊性の罠)

#d08cd6f4bc39
TypeScript
// TypeScript: reduce は seed なしだと累積型推論で詰まる
const total = products.reduce((acc, p) => acc + p.price, 0);
// 累積が配列やオブジェクトの場合は明示型が必要
const grouped = products.reduce<Record<string, number>>((acc, p) => {
未収録

対応 6: Aggregate ↔ reduce (型推論の罠)

#33e1420c284a
C#
// C#
bool hasExpensive = products.Any(p => p.Price >= 10000);
bool allInStock = products.All(p => p.Stock > 0);
未収録

対応 7: Any / All ↔ some / every

#b3a1ea8fb054
TypeScript
// TypeScript
const hasExpensive = products.some(p => p.price >= 10000);
const allInStock = products.every(p => p.stock > 0);
未収録

対応 7: Any / All ↔ some / every

#cd23c548df50
図鑑トップ