我在Snow Leopard中安装了Mono 2.6.7并想运行LINQPad.我已经启动LINQPad(v2.21)但是立即得到一个FileNotFoundException.有没有人能够成功运行它?
我认为异常是因为它试图读取/写入配置文件或其他东西,但希望有一些解决方法.
谢谢.
编辑:使用"Olive"构建Mono(WPF所需):
在终端:
svn co svn://anonsvn.mono-project.com/source/trunk/olive
cd /Users/(your user name)/olive
./configure --prefix=/Users/(your user name)/olive --with-glib=embedded
make
make install
Run Code Online (Sandbox Code Playgroud)
现在在Finder中导航到:
/ Users /(您的用户名)/ olive/lib/mono/gac
将这些文件夹(例如:PresentationCore,PresentationFramework)复制到:
/Library/Frameworks/Mono.framework/Versions/2.6.7/lib/mono/gac(当前的Mono版本是2.6.7,但这显然可能有所不同)
编辑:不幸的是,现在我在运行LINQPad时得到了这个:
警告**:无法加载类System.Windows.Resources.AssemblyAssociatedContentFileAttribute,在LINQPad中使用不能加载,在LINQPad中使用
编辑: Xamarin工作簿最近发布了1.0(https://developer.xamarin.com/workbooks/),是我在macOS上看到的LINQPad最接近的.
编辑(2017年9月): 这仍然是投机性的!
使用Docker和Windows子系统Linux(WSL)可以运行大多数Windows应用程序(包括GUI应用程序):

有关详细演练,请参阅https://blog.jessfraz.com/post/windows-for-linux-nerds/上的博客文章.
我正在尝试创建一个通用函数来帮助我从本地列表中使用LINQ to SQL选择数千条记录.SQL Server(至少2005)将查询限制为2100个参数,我想选择更多的记录.
这将是一个很好的示例用法:
var some_product_numbers = new int[] { 1,2,3 ... 9999 };
Products.SelectByParameterList(some_product_numbers, p => p.ProductNumber);
Run Code Online (Sandbox Code Playgroud)
这是我的(非工作)实现:
public static IEnumerable<T> SelectByParameterList<T, PropertyType>(Table<T> items,
IEnumerable<PropertyType> parameterList, Expression<Func<T, PropertyType>> property) where T : class
{
var groups = parameterList
.Select((Parameter, index) =>
new
{
GroupID = index / 2000, //2000 parameters per request
Parameter
}
)
.GroupBy(x => x.GroupID)
.AsEnumerable();
var results = groups
.Select(g => new { Group = g, Parameters = g.Select(x => x.Parameter) } )
.SelectMany(g …Run Code Online (Sandbox Code Playgroud) 我尝试过以下方面:
if(myString != nil && myString.length) { ... }
Run Code Online (Sandbox Code Playgroud)
得到了:
- [NSNull length]:发送到实例的无法识别的选择器
在第一个条件失败后,Objective-C不会短路吗?
它很容易在LINQPad中实例化多个DataContexts.有没有办法将这些实例设置为登录结果窗格的"SQL"选项卡?
设置myDataContext.Log = this.Log不起作用.
我有一些返回JSON的C#Web服务..NET JavaScriptSerializer以大纪元时间(自1970年以来的毫秒)返回日期.在任何Windows计算机上,基于Web的应用程序将毫秒数处理回正确的日期而不会出现问题.
在我的Mac上,日期有时会偏离1小时.不是每一次.只是有时.现在正在我正在构建的iPhone前端上发生这种情况.
我一开始认为,在将毫秒除以1000时,我已经失去了一些精度,以创建一个有效的Objective-C NSDate对象.然后我在Mac Firefox上使用相同的时间戳在javascript中测试日期创建,并获得相同的1小时偏移量.
有任何想法吗?谢谢...
编辑:我还注意到在XCode的控制台中,创建的日期旁边有一个-4或-5.我假设这是GMT偏移量.这些似乎随着日期是否偏移1小时而变化.因此,一些-4个日期和一些-5个日期是正确的,其中一个是偏移的.
编辑:使用示例:
console.log(new Date(-1173643200000));
Run Code Online (Sandbox Code Playgroud)
返回Sun Oct 23 1932 00:00:00 GMT-0400(EST)
console.log(new Date(-1031515200000));
Run Code Online (Sandbox Code Playgroud)
返回Sat Apr 24 1937 23:00:00 GMT-0500(EST)
NSDate* date = [NSDate dateWithTimeIntervalSince1970:ticks / 1000];
-589320000000 =
1951-04-30 00:00:00 -0400
-1173643200000 =
1932-10-22 23:00:00 -0500
Run Code Online (Sandbox Code Playgroud)
(这个在Firebug控制台中返回正确,在XCode控制台中错误)
-1303416000000 =
1928-09-12 00:00:00 -0400
-1492545600000 =
1922-09-15 00:00:00 -0400
-1263668400000 =
1929-12-16 00:00:00 -0500
-1252094400000 =
1930-04-29 00:00:00 -0400
-1046458800000 =
1936-11-03 00:00:00 -0500
-1298746800000 =
1928-11-05 00:00:00 -0500
-1031515200000 =
1937-04-24 23:00:00 -0500
Run Code Online (Sandbox Code Playgroud)
(在Firebug控制台和XCode控制台中返回错误)
-910465200000 …Run Code Online (Sandbox Code Playgroud) var trimmed = myStringArray.Select(s => s.Substring(0, 10));
Run Code Online (Sandbox Code Playgroud)
如果其中一个字符串长度不是10个字符,我会得到一个ArgumentOutOfRangeException.
在这种情况下,它很容易找到,我知道我可以做到
s.Substring(0, Math.Min(10, s.Length))
Run Code Online (Sandbox Code Playgroud)
对于更复杂的对象构造错误,这并不总是很容易看到.有没有办法通过异常处理来查看哪个字符串不够长?
使用字段而不是自动属性时是否存在明显的性能差异?如果我反序列化一组1000个JSON对象,每个具有5个属性呢?
我的iPhone域模型基本上是我的Web应用程序用于序列化为javascript的DTO的副本.他们都习惯使用自动属性.我担心我在MonoTouch中使用它们会浪费CPU周期.
c# ×4
linq ×3
linq-to-sql ×2
linqpad ×2
date ×1
docker ×1
epoch ×1
expression ×1
iterator ×1
json ×1
lambda ×1
linux ×1
macos ×1
mono ×1
objective-c ×1
performance ×1
windows-subsystem-for-linux ×1
xamarin.ios ×1