gpt4 book ai didi

C# 中的 Java 集合

转载 作者:太空宇宙 更新时间:2023-11-04 06:12:30 25 4
gpt4 key购买 nike

我正在学习一些数据结构,类(class)语言是 Java,但我是 C# 人员。

这是代码:

public Collection <Vertex> vertices()
{
return graph.values();
}

Vertex is a class but how can I return a Collection in C#? Ty!

Edit: I don't know if it will help but here is the class Vertex.(Code already in C#) Comments are in german.

public class Vertex : IComparable //Knotenklasse 
{
public string name; // Name des Knoten
public List<Edge> edges; // Nachbarn als Kantenliste
public int nr; // Knotennummer
public int indegree; // Eingangsgrad
public bool seen; // Wurde der Knoten schon überprüft?
public int dist; // Kosten für den Knoten
public Vertex prev; // vorheriger Knoten

public Vertex(string s)
{
this.name = s;
edges = new List<Edge>();
}

public bool hasEdge(Vertex w)
{
foreach (Edge e in edges)
{
if(e.dest == w)
{
return true;
}

}
return false;
}

public int CompareTo(Vertex d)
{
if(this.dist > d.dist)
{
return 1;
}
else if(this.dist < d.dist)
{
return -1;
}
else
{
return 0;
}
}
}
public class Edge // Kantenklasee
{
public double cost; // Kosten
public Vertex dest; // Zeiger auf den nächsten Knoten

public Edge(Vertex d,double c)
{
this.dest = d;
this.cost = c;
}
}

ps:C#中的类图

public class Graph
{
private Dictionary<Vertex, string> graph;
public Graph(Vertex d, string s)
{
graph = new Dictionary<Vertex, string>();
}

}

最佳答案

Dictionary.Values返回 ValueCollection 。您可以直接使用它,也可以将其转换为 .NET 中的许多内置集合类型。

通常,您应该返回一种尽可能通用的类型,即只知道足够的返回数据的类型。

public ICollection<Vertex> vertices()
{
return graph.values();
}

public IList<Vertex> vertices()
{
return graph.values().ToList();
}

ICollection<T>支持Add , RemoveCount .
IList<T>支持Add , Remove , Count以及通过索引随机访问元素的能力

如果您想了解有关不同集合类型以及何时使用它们的更多信息,请查看 this link

关于C# 中的 Java 集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28526031/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com