小编Phi*_*peC的帖子

在Visual Studio Nuget包管理器控制台中中止"unclosed"powershell命令

我意外地在NuGet Package Manager控制台中发出了无效的PowerShell命令并锁定了控制台.
命令是

PM> Get-Project -all | Where { $_.ProjectName -imatch "GPEC.Personne }
Run Code Online (Sandbox Code Playgroud)

然后控制台显示>>作为提示,我无法离开此模式.关闭并重新打开控制台没有帮助.(不得不重启VS).
在这种情况下,有没有办法优雅地取消错误的命令并返回到标准PM>提示符?

提前致谢.菲利普

powershell nuget visual-studio-2012

20
推荐指数
2
解决办法
9155
查看次数

计算具有给定大小的集合的子集

给定具有n个元素的集合C(允许重复)和n
P = {i1,i2,.../i1 + i2 + ... = n} 的分区P 在大小为i1,i2的子集中有多少不同的C分解, ... 在那儿 ?

示例:

C = {2 2 2 3}

P = {2 2}
C = {2 2} U {2 3}

P = {1 1 2}
C = {2} U {2} U {2 3}
C = {2} U {3} U {2 2}

P = {1 3}
C = {2} U {2 2 3}
C = {3} U {2 2 2}
Run Code Online (Sandbox Code Playgroud)

我有一个解决方案,但是当C有十几个元素时效率很低.
在此先感谢
Philippe

algorithm math combinatorics

10
推荐指数
1
解决办法
393
查看次数

在两个字符串的字符之间插入空格会修改它们的顺序

我有2个相同长度的字符串.
我假设(可能错误地)在每个字符串的每个字符之间插入一个空格不会改变它们的顺序.

var e1 = "12*4";  
var e2 = "12-4";  
Console.WriteLine(String.Compare(e1,e2)); // -1 (e1 < e2)

var f1 = "1 2 * 4";  
var f2 = "1 2 - 4";  
Console.WriteLine(String.Compare(f1,f2)); // +1 (f1 > f2)
Run Code Online (Sandbox Code Playgroud)

如果我插入其他字符(例如_ x),则保留顺序.

这是怎么回事 ?

提前致谢.

c# sorting

5
推荐指数
1
解决办法
63
查看次数

迭代器错误(更可能)是一种非常微妙的行为?

我的问题需要3个(不太长的函数)来重现(VS2010/.NET 4)
在第一种情况下,我的IEnumerable没有被评估(通过ToList()方法)
我看不出为什么..

//主程序

private void ButtonTest_Click(object sender, RoutedEventArgs args)  
{  
    int[] indexes = new int[] { 2, 2, 2, 2, 2, 2 };  
    var query = Odometer(indexes);  
    // 1) Iterator not evaluated ???  
    var temp = query.ToList();  
    MessageBox.Show(AsString(temp[3]));   

    // 2) OK in this case  
    int count = 0;  
    foreach (int[] item in query)  
    {  
        count++;  
        if (count == 3)  
            MessageBox.Show(AsString(item));  
    }  
}  

/// <summary>  
/// Generate all tuples between 0 and indexes[i]-1  
/// Ex :   
/// Odometer(new int[]{2, …
Run Code Online (Sandbox Code Playgroud)

c# linq iterator

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

n个对象的排列(具有重复的排列)

我正在寻找"排列"算法的快速实现(具有重复的排列).给定N个对象(数量a中的A,数量b中的B,......),生成所有可能的组合.
例:

Arrangement("AAA", "B", "CC") would return :   
"AAABCC" "AABACC" "AABCAC" "AABCCA" "ABAACC" "ABACAC" "ABACCA" "ABCAAC"   
"ABCACA" "ABCCAA" "BAAACC" "BAACAC" "BAACCA" "BACAAC" "BACACA" "BACCAA"   
"BCAAAC" "BCAACA" "BCACAA" "BCCAAA" "AAACBC" "AACABC" "AACBAC" "AACBCA"   
"ACAABC" "ACABAC" "ACABCA" "ACBAAC" "ACBACA" "ACBCAA" "CAAABC" "CAABAC"   
"CAABCA" "CABAAC" "CABACA" "CABCAA" "CBAAAC" "CBAACA" "CBACAA" "CBCAAA"   
"AAACCB" "AACACB" "AACCAB" "AACCBA" "ACAACB" "ACACAB" "ACACBA" "ACCAAB"   
"ACCABA" "ACCBAA" "CAAACB" "CAACAB" "CAACBA" "CACAAB" "CACABA" "CACBAA"   
"CCAAAB" "CCAABA" "CCABAA" "CCBAAA"  
Run Code Online (Sandbox Code Playgroud)

(如果可能,用C,C#或Pascal编码)

在此先感谢
Philippe

algorithm math combinatorics

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