WebI.KzdLib.Foundation 5.1.0

WebI.KzdLib.Foundation

Kouteizu (工程’s) にも Windows にも依存しない、純粋な C# ユーティリティ群。 IEnumerable / IDictionary / DateTime / 文字列 / ジェネリクスの拡張メソッドと、木構造走査ツールキット (TreeExtensions + TreePruning)、期間値型 (DateTimeRange) を提供します。

もとは WebI.KzdLibFoundation 層 (Layer 1) でしたが、KZ ドキュメントを扱わないアプリからも再利用できるよう独立パッケージとして切り出しました。コミット履歴は元リポジトリから引き継いでいます。

  • 対象フレームワーク: netstandard2.0 / net8.0 (マルチターゲット)
    • netstandard2.0 資産は .NET Framework 4.7.2+ および .NET Core 2.0+ から参照可能
  • C# 言語バージョン: 7.3
  • 依存パッケージ: なし (BCL のみ)
  • 提供元: Web I Laboratories, Inc.

インストール

社内 NuGet サーバー https://nuget.dev.cloud-webi.com/v3/index.json をパッケージソースに追加してからインストールしてください。

Install-Package WebI.KzdLib.Foundation

csproj (PackageReference) の場合:

<ItemGroup>
  <PackageReference Include="WebI.KzdLib.Foundation" Version="5.0.0.0" />
</ItemGroup>

クイックスタート

using WebI.KzdLib.Foundation;

// 木構造を BFS / DFS で走査 (TreePruning で枝刈り制御)
foreach (var node in TreeExtensions.TraverseTreeAsBreadthFirst(root, n => n.Children))
{
    // ...
}

// 期間の集合演算
var merged = ranges.MergeRanges();

// 辞書・列挙の便利拡張
var v = dict.GetValueOrCreate(key, () => new List<int>());
var uniq = items.DistinctBy(x => x.Id);

net8.0 / net10.0 で使うときの注意

モダン .NET の BCL には、本ライブラリと同名の拡張メソッドが後から追加されています:

  • System.Linq.Enumerable.DistinctBy (.NET 6+)
  • System.Collections.Generic.CollectionExtensions.GetValueOrDefault (.NET Core 2.0 / .NET 5+)

これらが利用側で衝突 (CS0121 あいまいな呼び出し) しないよう、net8.0 ビルドでは本ライブラリ側の該当オーバーロード (DistinctBy(..., comparer)GetValueOrDefault(key, defaultValue)) を #if !NET で除外し、BCL 版に委ねています。.NET Framework / netstandard2.0 経由では従来どおり本ライブラリの実装が使われます。

ライセンス / 不具合報告

社内利用限定。不具合・要望は イシュートラッカー へ。

Showing the top 20 packages that depend on WebI.KzdLib.Foundation.

Packages Downloads
WebI.KzTools
KzTools Library to manipulate Kouteizu Data
3
WebI.KzTools
KzTools Library to manipulate Kouteizu Data
2
WebI.KzdLib
Library to extend KzTools for applications using it
2
WebI.KzdLib
Library to extend KzTools for applications using it
1
WebI.KzTools
KzTools Library to manipulate Kouteizu Data
1

5.1.0: 旧 Core 版 (WebI.KzdLib.Core) 互換のため ListExtensions.BinarySearch(Func) と ComparisonComparer を追加 (いずれも [Obsolete]。新規コードは Comparer.Create を推奨)。5.0.0: WebI.KzdLib の Foundation 層 (Kouteizu 非依存の汎用ユーティリティ) を独立パッケージとして切り出した初版。netstandard2.0 / net8.0 のマルチターゲット。

.NET 8.0

  • No dependencies.

.NET Standard 2.0

  • No dependencies.

Version Downloads Last updated
5.1.0 4 06/13/2026
5.0.0 3 06/13/2026