AkiraNetwork / VirtualStorageLibrary

VirtualStorageLibrary Project
https://shimodateakira.github.io/VirtualStorageLibrary/
Other
18 stars 0 forks source link

VirtualDirectoryクラスのCount系プロパティについて #74

Closed shimodateakira closed 3 months ago

shimodateakira commented 5 months ago

現在、以下のCount系プロパティは_nodesを対象として取得しているが、仕様としてはNodesプロパティ(グルーピング、ソート、フィルタリング済み)を対象としたい。パフォーマンスを含め、仕様変更を検討。

public int Count => _nodes.Count;
public int DirectoryCount => _nodes.Values.Count(n => n is VirtualDirectory);
public int ItemCount => _nodes.Values.Count(n => n is VirtualItem);
public int SymbolicLinkCount => _nodes.Values.Count(n => n is VirtualSymbolicLink);
shimodateakira commented 5 months ago

とは言え、表示条件を考慮しないCountもあった方がよい。 その為、

  1. 表示条件を考慮したCount (フィルタリングにより変動するCount)
  2. 表示条件を考慮しないCount (純粋な_nodesのCount)

の2系統で検討を進める。

shimodateakira commented 3 months ago

以下のように整理した。

        public IEnumerable<VirtualNodeName> NodeNames => _nodes.Keys;

        public IEnumerable<VirtualNode> Nodes => _nodes.Values;

        public int Count => _nodes.Count;

        public int DirectoryCount => _nodes.Values.Count(n => n is VirtualDirectory);

        public int ItemCount => _nodes.Values.Count(n => n is VirtualItem);

        public int SymbolicLinkCount => _nodes.Values.Count(n => n is VirtualSymbolicLink);

        public IEnumerable<VirtualNode> NodesView => GetNodeList();

        public int NodesViewCount => NodesView.Count();

        public int DirectoryViewCount => NodesView.Count(n => n is VirtualDirectory);

        public int ItemViewCount => NodesView.Count(n => n is VirtualItem);

        public int SymbolicLinkViewCount => NodesView.Count(n => n is VirtualSymbolicLink);
リード名のリスト: プロパティ 説明
NodeNames ノード名のリスト
生のノードリスト関連のプロパティ: プロパティ 説明
Nodes ノードのリスト
Count ノードのカウント
DirectoryCount ディレクトリのカウント
ItemCount アイテムのカウント
SymbolicLinkCount シンボリックリンクのカウント
表示条件を考慮したノードリスト関連のプロパティ: プロパティ 説明
NodesView ノードのリスト
NodesViewCount ノードのカウント
DirectoryViewCount ディレクトリのカウント
ItemViewCount アイテムのカウント
SymbolicLinkViewCount シンボリックリンクのカウント
shimodateakira commented 3 months ago

修正済み。テスト済み。 本件はクローズ。