看看这段代码.
interface ILoader
{
}
interface ILoader<T>: ILoader
{
T Load();
}
class CarLoader: ILoader<Car>
{
...
}
class TrainLoader: ILoader<Train>
{
...
}
class Container
{
List<ILoader> loaders = new ILoader[] { new CarLoader(), new TrainLoader()};
public T Load<T>()
{
// Finding right loader
var loader = loaders.OfType<ILoader<Car>>.FirstOrDefault();
return loader.Load();
}
}
Run Code Online (Sandbox Code Playgroud)
我有大约100个装载机,我需要加载很多火车,汽车等.我认为装载机列表非常慢(有OfType()线性复杂性??),你建议使用什么而不是列表?Dictionary<Type,ILoader>或Hashtable<Type,ILoader>或HashSet<ILoader>?例如使用hashset.OfType<ILoader<Car>>(),列表或更快的速度有多快?
我正在使用wix 3.5来创建具有"perUser"安装范围的Windows安装程序.该WXS文件是在这里,产生的MSI文件是在这里.
我从light.exe链接器收到以下奇怪的警告.我不确定我是否应该压制它们,或者是否有更好的方法来解决这个问题.
ICE57
D:\ hg\downmarker\setup\product.wxs(34):警告LGHT1076:ICE57:组件'component.downmarker.exe'具有HKCU Registry KeyPath的每用户和每机器数据.
这个警告对我来说没有意义,因为安装程序在没有管理访问权限的情况下工作正常--AFAIK证明安装程序不会像警告声称的那样写任何"每台机器数据".
ICE91
D:\ hg\downmarker\setup\product.wxs(37):警告LGHT1076:ICE91:文件'downmarker.exe'将安装到每个用户目录'DownMarkerFolder',该目录不会因ALLUSERS值而异.即使需要按计算机安装,也不会将此文件复制到每个用户的配置文件中.
这个警告对我来说没有意义,因为我明确地将安装程序标记为具有"perUser"安装范围.
我从最新的facebook ios SDK下载了示例应用程序.我在facebook init中设置我的appId,在URL方案中设置appId.
当我运行应用程序时,它会打开Facebook应用程序,并显示一条消息"您已经授权此应用程序,单击确定".
当我点击确定,它只是留在Facebook应用程序,重定向不起作用...
你知道我错过了什么吗?
谢谢,文森特.
我正在使用SQL Server 2000并且在SQL代码块(下面)中遇到了一个奇怪的问题:
用户可以输入"GM"作为可能的参数或"F".如果用户在存储的proc查询字符串中输入"GM"作为参数,我需要AutoDivision包含GMC,CAD,CHE,SAT
declare @AutoDivision as varchar(15)
set @AutoDivision = 'GM'
if @AutoDivision = 'GM'
Begin
Select @AutoDivision = '''Cad'', ''GMC'', ''Sat'', ''Che'''
End
SELECT
oh.OrderNumber, lg.[lgh_number]
FROM
[dbo].[OrderHeader] oh (NOLOCK)
INNER JOIN
[dbo].[DistrctHeader] lg (NOLOCK) ON oh.[inv_number] = lg.[inv_number]
INNER JOIN
[dbo].[DealerCompany] c (NOLOCK) ON c.cmp_id = LEFT(oh.[ordernumber],3)
INNER JOIN
[dbo].[divisionXREF] x (NOLOCK) ON x.Division = c.comp_revtype
WHERE
oh.ord_number = '113-889257'
AND x.AutoDivision IN (@AutoDivision)
--AND x.AutoDivision IN ('Cad', 'Sat', 'GMC', 'Che')
AND lg.[lgh_outstatus] IN ('AVAIL', 'PLAN', 'DISP', …Run Code Online (Sandbox Code Playgroud) 我想知道你做了什么让导航栏冻结在页面顶部.我的意思是,如果导航栏开始大约在页面的中间位置,当用户向下滚动导航栏到达顶部时,我希望它停在那里,以便它始终可见.我在多个网站上看过这个,但我不确定它是如何完成的.
我使用lock语句在 C# 中使用简单锁定。有没有办法确定有多少其他线程正在等待获得对象的锁定?我基本上想将等待锁定的线程数限制为 5。如果第六个线程需要获得锁定,我的代码将抛出异常。
我遇到了双倍的自由,我无法看到它发生在哪里.以下代码的目标是从链接列表中删除Person节点.
typedef struct person {
char *first ;
char *last ;
char *location ;
struct person *next_person ;
} person ;
struct person_list {
int num_persons ;
person *first_person ;
} person_list ;
extern struct person_list person_list ;
void free_person(person *person) {
free(person->first);
person->first = NULL;
free(person->last);
person->last = NULL;
free(person->location);
person->location = NULL;
free(person);
person = NULL;
}
...
if (person_list.num_persons > 0) {
while (person_list.num_persons > 0) {
//Iterate to the end of the chain.
cur_person = person_list.first_person; …Run Code Online (Sandbox Code Playgroud) 我有一个具有均值 M 和协方差矩阵 V 的高维高斯分布。我想计算从点 p 到 M 的距离,考虑到 V(我猜这是 p 与 M 的标准差的距离?)。
换个角度来说,我取一个距离 M 1 sigma 的椭圆,并想检查 p 是否在该椭圆内部。
假设我有:
test = numpy.array([[1, 2], [3, 4], [5, 6]])
Run Code Online (Sandbox Code Playgroud)
test[i]让我第i个阵列(例如线[1, 2]).我怎样才能访问第i列?(例如[1, 3, 5]).这也是一项昂贵的操作吗?