请原谅这个令人难以置信的愚蠢问题,但我不熟悉C#.我只是无法弄清楚如何在另一个项目中使用一个项目中的类.
假设我想从Project1中取一个字符串到Project2,并让Project2打印出字符串.
我使用"添加引用"菜单从Project1引用Project2,然后我添加"使用Project2"然后我将其写入尝试并从"Project2"中的"ClassA"调用"print".
Project2.ClassA Classa = new Project2.ClassA();
Console.WriteLine(Classa.print);
Run Code Online (Sandbox Code Playgroud)
但我得到的只是错误信息.
所以任何人都可以一步一步地解释为什么我需要做什么?
为什么我们需要.NET中的引用类型?
我只能想到一种情况,它支持在不同功能之间共享数据,从而提供存储优化.
除此之外,我无法列举任何理由,为什么需要参考类型?
有没有什么快捷方式或更好的方法来强制转换List<bool>到List<object>?
我知道我可以通过循环和转换单个项目来做到这一点,但我想知道是否可以在一个语句中强制转换整个列表.
我试图创建一个看起来像这样的扩展方法......
public static IEnumerable<T> Distinct<T>(this IEnumerable<T> value, IEnumerable<T> compareTo, Func<T, object> compareFieldPredicate)
{
return value.Where(o => !compareTo.Exists(p => compareFieldPredicate.Invoke(p) == compareFieldPredicate.Invoke(o)));
}
Run Code Online (Sandbox Code Playgroud)
我的想法是,我可以做这样的事......
IEnumerable<MyCollection> distinctValues = MyCollection.Distinct(MyOtherCollection, o => o.ID); //Note that o.ID is a guid
Run Code Online (Sandbox Code Playgroud)
现在,在这一点上,我本来希望只有我的不同物品归还给我,但我发现从来没有这样.
进一步研究使用以下代码分解此方法.
Guid guid1 = Guid.NewGuid();
Guid guid2 = new Guid(guid1.ToString());
Func<MyObject, object> myFunction = o => o.ID;
Func<MyObject, object> myFunction1 = o => o.ID;
bool result = myFunction(MyObject) == myFunction1(MyObject);
//result = false
Run Code Online (Sandbox Code Playgroud)
我发现即使Guids是相同的,比较也总是返回false.
这是什么原因?
目前正在处理一个 C# 项目 - 我正在尝试做的一般想法是......
用户有一个或多个带有他们感兴趣的交易品种的投资组合,每个投资组合将交易品种的数据下载到 csv,解析它,然后对数据运行一组规则,根据这些规则的结果生成警报。每当经过设定的时间间隔时下载数据等
我计划让每个投资组合在它自己的线程上运行,这样当间隔过去时,每个投资组合可以继续下载数据,同时解析和运行规则,而不是一个一个。然后应将警报推送到包含警报队列的另一个线程 (!)。当它收到警报时,它会将它们发送给客户端。
有点多但是用 C# 解决这个问题的最好方法是什么 - 使用线程,或者像后台工作程序这样的东西,只是让警报队列在一个单独的线程上运行?
非常感谢您的任何建议,其中一些内容是新手,所以如果我完全错了,请随时告诉我:)
我正在编写一个Windows 8应用程序,需要访问另一个程序的应用程序数据中的文件.我已经阅读了Window的文件permssion指南,并没有看到这样做的方法.这甚至可能吗?如果是这样,我该怎么做呢?
c# visual-studio microsoft-metro windows-8 windows-store-apps
这是Linq检查列表中所有项目是否相同的方法.
if (list.Distinct().Skip(1).Any())
Run Code Online (Sandbox Code Playgroud)
但是对于早于.NET 3.5开发的应用程序不起作用.以非Linq方式执行此操作的最佳方法是什么.
我确定有人已经回答了这个问题,但我找不到正确的搜索字词来找到它...
我可以通过循环遍历所有值来做到这一点但我只是检查是否有人知道更简单的方法.
Dim List1 As New List(Of Integer) From {1,3,5,7}
Dim List2 As New List(Of Integer) From {2,4,6,8}
List1.ContainsAnythingFrom(List2) = False
Run Code Online (Sandbox Code Playgroud)
因为两个列表中都没有匹配的数字.
Dim List1 As New List(Of Integer) From {1,**3**,5,7}
Dim List2 As New List(Of Integer) From {2,**3**,6,8}
List1.ContainsAnythingFrom(List2) = True
Run Code Online (Sandbox Code Playgroud)
因为每个列表中有3个.
我正在寻找一个ContainsAnythingFrom类型的函数.
我想知道一个字符串是否以数字结尾(带/不带小数).如果它结束,我想提取它.
"Test1" => 1
"Test" => NOT FOUND
"Test123" => 123
"Test1.1" => 1.1
Run Code Online (Sandbox Code Playgroud)
我错过了一些细节.
1.在数字之前,字符串也可以包含特殊字符
2.它是单行,而不是多行.
customerInfo.Telephone = contactData.Where(d => d.ContactTypeId == (int)ContactType.Phone).FirstOrDefault() != null
? contactData.Where(d => d.ContactTypeId == (int)ContactType.Phone).FirstOrDefault().Data
: string.Empty;
Run Code Online (Sandbox Code Playgroud)
contactData是IEnumerator.问题是两次运行相同的查询.如果我使用变量,我可以摆脱它,但是有一个新变量需要维护.
有没有办法让这些代码更具可读性,并且在不使用任何其他自定义库的情况下使其运行更快?
c# ×8
.net ×7
linq ×3
generics ×2
list ×2
blocking ×1
c#-4.0 ×1
comparison ×1
covariance ×1
guid ×1
lambda ×1
linqbridge ×1
numbers ×1
performance ×1
regex ×1
vb.net ×1
windows-8 ×1