C# - 排序 ObservableCollection“'utils' 由于其保护级别而无法访问”
C# - Sorting ObservableCollection "'utils' is inaccesible due to its protection level"
我正在尝试按数字对我的可观察集合进行排序。我在这个论坛上找到了这个 post:
How do I sort an observable collection?
一切正常,直到下线:
return Utils.LogicalStringCompare(a.Penize, b.Penize);
我在哪里得到这个错误:
“'Utils' 由于其保护级别而无法访问。”
我的代码:
static class Extensions
{
public static void Sort<T>(this ObservableCollection<T> collection) where T : IComparable
{
List<T> sorted = collection.OrderBy(num => num).ToList();
for (int i = 0; i < sorted.Count(); i++)
collection.Move(collection.IndexOf(sorted[i]), i);
}
}
public class Uzivatel : IComparable
{
public int CompareTo(object o)
{
Uzivatel a = this;
Uzivatel b = (Uzivatel)o;
return Utils.LogicalStringCompare(a.Penize, b.Penize);
}
public int Penize{get;set;}
}
有人可以帮我解决这个问题吗?
(即使我将扩展 class 设置为 public,问题仍然存在。)
我不想使用这个 insted,因为它对数字的排序很糟糕 (1005 < 15 -_-):
return string.Compare(a.Penize.ToString(), b.Penize.ToString());
如果你能给我任何帮助,我会很高兴。
确保您的 class Utils 可以在 Uzivatel class 中访问。使用 public 访问修饰符使其可访问。喜欢:
public class Utils
{
//Your properties and methods
}
我正在尝试按数字对我的可观察集合进行排序。我在这个论坛上找到了这个 post: How do I sort an observable collection?
一切正常,直到下线:
return Utils.LogicalStringCompare(a.Penize, b.Penize);
我在哪里得到这个错误: “'Utils' 由于其保护级别而无法访问。”
我的代码:
static class Extensions
{
public static void Sort<T>(this ObservableCollection<T> collection) where T : IComparable
{
List<T> sorted = collection.OrderBy(num => num).ToList();
for (int i = 0; i < sorted.Count(); i++)
collection.Move(collection.IndexOf(sorted[i]), i);
}
}
public class Uzivatel : IComparable
{
public int CompareTo(object o)
{
Uzivatel a = this;
Uzivatel b = (Uzivatel)o;
return Utils.LogicalStringCompare(a.Penize, b.Penize);
}
public int Penize{get;set;}
}
有人可以帮我解决这个问题吗? (即使我将扩展 class 设置为 public,问题仍然存在。)
我不想使用这个 insted,因为它对数字的排序很糟糕 (1005 < 15 -_-):
return string.Compare(a.Penize.ToString(), b.Penize.ToString());
如果你能给我任何帮助,我会很高兴。
确保您的 class Utils 可以在 Uzivatel class 中访问。使用 public 访问修饰符使其可访问。喜欢:
public class Utils
{
//Your properties and methods
}