小编zmb*_*mbq的帖子

C#中的Java Map等价物

我正在尝试使用我选择的键来保存集合中的项目列表.在Java中,我只想使用Map如下:

class Test {
  Map<Integer,String> entities;

  public String getEntity(Integer code) {
    return this.entities.get(code);
  }
}
Run Code Online (Sandbox Code Playgroud)

在C#中有相同的方法吗? System.Collections.Generic.Hashset不使用哈希并且我无法定义自定义类型键 System.Collections.Hashtable不是泛型类
System.Collections.Generic.Dictionary没有get(Key)方法

c# java generics collections

146
推荐指数
3
解决办法
16万
查看次数

连接WIFI时获取SSID

当我的Android设备连接到WIFI时,我正在尝试获取WIFI网络的SSID.

我注册了BroadcastReceiver android.net.wifi.supplicant.CONNECTION_CHANGE.当WIFI断开连接或重新连接时,我收到通知.不幸的是,我无法获得网络的SSID.

我正在使用以下代码来查找SSID:

WifiManager wifiManager = (WifiManager) context.getSystemService(context.WIFI_SERVICE);
WifiInfo wifiInfo = wifiManager.getConnectionInfo();
String ssid = wifiInfo.getSSID();
Run Code Online (Sandbox Code Playgroud)

而不是SSID,我得到了<unknown ssid>回来的字符串.

这些是清单中的权限(我添加了ACCESS_NETWORK_STATE只是为了检查,我实际上并不需要它)

<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
Run Code Online (Sandbox Code Playgroud)

为什么会这样?我怎样才能获得实际的SSID?在建立连接之前,广播是否已提前播出?我应该听另一个广播吗?我只对WIFI连接感兴趣,而不是3G连接.

更新:我刚刚检查过,wifiInfo.getBSSID()返回null.

android ssid wifi

55
推荐指数
6
解决办法
8万
查看次数

无法升级Android SDK工具

我正在尝试将Android SDK工具从版本15升级到版本16.更新失败,声称"文件夹无法移动":

无法将目录C:\ android-sdk\tools重命名为C:\ android-sdk\temp\ToolPackage.old01

我尝试禁用我的防病毒软件(因为有些人在2009年报告过这个问题),但它没有用.重新启动也没有用.我在两台不同的Windows 7机器上遇到了这个问题.

我没有遇到从先前版本升级到版本15的问题.

谁知道我怎么能绕过这个?

installer sdk android

42
推荐指数
1
解决办法
4万
查看次数

使两个分支相同

我有两个分支--A和B. B是从A创建的.

两个分支机构的工作同时进行.分支A上的工作很糟糕(导致非工作版本),而分支B上的工作很好.在此期间,分支B有时合并到分支A(但不是相反).

现在我想让分支A与分支B相同.我不能使用git revert,因为我需要恢复过多的提交 - 我只想恢复在分支A上完成的提交但不是因为合并分支B的结果.

我找到的解决方案是将分支B克隆到另一个文件夹,从分支A的工作文件夹中删除所有文件,从temp分支B文件夹中复制文件并添加所有未跟踪的文件.

是否有一个git命令做同样的事情?我错过了一些git revert开关?

git version-control merge

27
推荐指数
4
解决办法
1万
查看次数

Code-First应用程序中的XML列

我正在尝试在Code First中创建XML列.我很清楚Entity Framework不完全支持XML列,并且它将它们作为字符串读取.没关系.不过,我仍然希望列类型为XML.这是我的班级:

class Content
{
    public int ContentId { get; set; }

    [Column(TypeName="xml")]
    public string XmlString { get; set; }

    [NotMapped]
    public XElement Xml { get { ... } set { ... } }
 }
Run Code Online (Sandbox Code Playgroud)

问题是,Code First Migrations完全忽略Column属性并将字段创建为nvarchar(max).我试过用[DataType("xml")],但那也没用.

这是迁移错误吗?

c# xml ef-code-first ef-migrations

16
推荐指数
3
解决办法
2万
查看次数

printf("%p")并转换为(void*)

在最近的一个问题中,有人提到当使用printf打印指针值时,调用者必须将指针强制转换为void*,如下所示:

int *my_ptr = ....

printf("My pointer is: %p", (void *)my_ptr);
Run Code Online (Sandbox Code Playgroud)

对于我的生活,我无法弄清楚为什么.我发现了这个问题,几乎是一样的.问题的答案是正确的 - 它解释了整数和指针的长度不一定相同.

这是当然的,真实的,但是当我已经在的情况下有一个指针,像上面,我为什么要由铸铁int *void *?什么时候int*与void*不同?事实上,什么时候(void *)my_ptr生成任何与简单不同的机器代码my_ptr

更新:多个知识渊博的响应者引用了标准,说传递错误的类型可能会导致未定义的行为.怎么样?我期望printf("%p", (int *)ptr)printf("%p", (void *)ptr)生成完全相同的堆栈帧.两个调用何时生成不同的堆栈帧?

c printf pointers

16
推荐指数
5
解决办法
2705
查看次数

使用ModelMetadata获取完整的属性名称

我正在尝试创建一个HtmlHelper,它将创建与Bootstrap兼容的表单字段.我的第一个目标是创建一个HtmlHelper来创建周围的div:

<div class="control-group"> ... </div>
Run Code Online (Sandbox Code Playgroud)

遵循这里的优秀建议,并在这里我设法让它相对快速地工作.但它并不总是奏效.

我有一个具有复杂属性的ViewModel,所以在我的表单中我访问该字段m=>m.Complex.Element.在我的助手中,我检查元素是否有验证错误.我用ModelMetadata.FromLambdaExpression(expression, html.ViewData).我得到的元数据有属性名称Element,而不是Complex.Element.

当我检查ModelState的这个属性时,我找不到它,因为ModelState保留了全名 - Complex.Element.

我可以寻找部分匹配,希望没有其他元素,但这似乎是一个令人讨厌的错误等待发生.如何从表达式中获取完整的属性名称?

c# asp.net-mvc

13
推荐指数
2
解决办法
5058
查看次数

获得城市的边界框

我想知道特定地理坐标距离城市列表的距离("远"表示坐标与城市之间的欧氏距离,而不考虑道路).为此,我需要为每个城市找到一个边界框 - 所有城市都位于以色列.

这篇文章讨论了国家边界框,但我在城市层面需要它们.

除了在地图上手绘绘制矩形并提取坐标之外,有没有办法获取一长串城市的信息?

gis

12
推荐指数
2
解决办法
1万
查看次数

在C++/CLI中跟踪所有DLL加载和初始化

我有一个复杂的C++/CLI应用程序,有许多模块(几十个),有些管理一些不受管理的模块.最近我们从Visual Studio 2013切换到Visual Studio 2015.它在某些计算机上运行,​​但在其他计算机上运行.

当程序不工作时,它甚至在主要的第一行之前崩溃.它报告了一个访问冲突异常_onexit.当忽略一些异常和断言时,我看到<Module>扔了一个TypeInitializationException.

问题是 - 我不知道哪一个.我可以看到在输出窗口中加载DLL的时间.最后加载的DLL是System.dll- 当然我的bug不存在.因此,我需要一种方法来跟踪托管DLL中的静态变量初始化,以便我可以找出哪个DLL存在问题,然后我可以跟踪有问题的初始化.

我怎样才能做到这一点?

debugging c++-cli visual-studio

11
推荐指数
1
解决办法
193
查看次数

VRML到X3D转换

我正在开发一个管理VRML文件的Web应用程序.我还想让用户看到上传的文件,而无需特定的插件或播放器.X3DOM允许在大多数浏览器上查看没有插件的X3D文件,所以我想使用它.

唉,它适用于X3D文件,而不适用于VRML文件.我需要将VRML文件转换为X3D格式.

X3DOM背后的同一个人发布了一个名为InstantReality的软件包,它有一个将VRML转换为X3D的实用程序.但是,我宁愿不使用外部实用程序(我甚至不确定我是否允许在商业环境中使用它,我找不到它的使用条款)但是从我的应用程序代码调用转换例程.

python django vrml x3d x3dom

10
推荐指数
2
解决办法
6693
查看次数