小编Tam*_*red的帖子

检查字符串是否已排序

我有一个简化的字符串,"12345"它被排序.字符串couild包含数字(0-9)或字母(az).在混合使用的情况下,自然排序顺序.我需要一种方法来验证这是否属实.

使用linq技术尝试:

string items1 = "2349"; //sorted
string items2 = "2476"; //not sorted, 6<>7

bool sorted1 = Enumerable.SequenceEqual(items1.OrderBy(x => x), items1); //true
bool sorted2 = Enumerable.SequenceEqual(items2.OrderBy(x => x), items2); //false
Run Code Online (Sandbox Code Playgroud)

但也可能有降序排序.

那么有更好的方法吗?

string items3 = "4321";
bool sorted3 = Enumerable.SequenceEqual(items3.OrderBy(x => x), items3) || Enumerable.SequenceEqual(items3.OrderByDescending(x => x), items3);
Run Code Online (Sandbox Code Playgroud)

检查字符串是否已排序?也许一些内置的解决方案?

.net c# linq sorting string

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

Linq:GroupBy 其 child.value 属性值

我有一个Parent包含Child对象集合的类,其中Child有两个属性:KeyValue

class Parent
{
    public IEnumerable<Child> Children { get; set; }
}

class Child
{
    public String Key { get; set; }
    public String Value { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我需要List<Parent>按其分组 a Child.Value

例子:

IEnumerable<Parent> parents = new List<Parent>()
{ 
    new Parent()
    {
        Children = new List<Child>()
        {
            new Child() { Key = "key1", Value = "v1" },
            new Child() { Key = "key1", Value = "v2" …
Run Code Online (Sandbox Code Playgroud)

.net c# linq group-by

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

使用 BeautifulSoup 获取某个 &lt;td&gt; 类

尝试编写一些代码,首先将玩家的姓名与他的工资请求相匹配。我能够编写它,以便通过从“sortcell”类中调用它来获取给定团队中每个球员的名字,但我似乎不知道如何获得薪水,因为他们都被称为 .

from bs4 import BeautifulSoup
from urllib import urlopen

teams = ['http://espn.go.com/nba/team/roster/_/name/atl/atlanta-hawks']

for team in teams:
    html = urlopen('' + team)
    soup = BeautifulSoup(html.read(), 'lxml')
    names = soup.findAll("td", {"class": "sortcell"})
    salary = soup.findAll("td", {"class": "td"})
    print(salary)
    for i in range(1, 15):
        name = names[i].get_text()
        print(name)
Run Code Online (Sandbox Code Playgroud)

您可以在以“薪水”开头的代码中看到我的(失败的)尝试。关于如何只获得薪资级别有什么想法吗?谢谢!

预期行为:

Salary 变量应该返回给定球员的工资,但目前不返回任何内容。

python beautifulsoup

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

SQL Server查找所有计算和非持久列

我试图找到所有计算列而不是持久化.我看着这个INFROMATION_SCHEMA.Columns以及sys.columns.我ispersisted在这些表格中找不到财产.我也试过COLUMNPROPERY()没有运气.

谢谢

sql-server

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

变量和对象之间的区别

好吧,在我正在学习C#.net的教程中反复出现两个语句

DataRow dr;

这是什么意思.我认为它是一个DataRow类的变量.

DataRow dr = new DataRow();

这是什么意思.我认为它是DataRowClass的一个对象.

但我仍然带着歧义离开,在这种情况下,我将使用第一个案例或第二个案例.我现在很困惑.

我认为这个问题在Java论坛中已经重复了.但我没有得到它,因为我没有任何Java背景.所以在标记之前重复考虑一下.

.net c#

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

用随机值替换多维数组中的所有项

对于单维数组,通常我会像下面的那样使用for循环,但我想不出一种不涉及大量循环的方法.

for (int i = 0; i < myArray.length; ++i)
{
    myArray[i] = rnd.Next(1, 500);
}
Run Code Online (Sandbox Code Playgroud)

c# arrays

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

罗斯林是否关心句法的正确性.如果是这样,怎么打开它?

我想从C#中找出使用Roslyn的代码行.这是我试过的.

SyntaxTree tree = SyntaxTree.ParseText(@"int fun(int x){ int y = 0; x++; return x+1; return z;} 
                                                 double funny(double x){ return x/2.13;}");

List<MethodDeclarationSyntax> methods = tree.GetRoot()
    .DescendantNodes()
    .Where(d => d.Kind == SyntaxKind.MethodDeclaration)
    .Cast<MethodDeclarationSyntax>()
    .ToList();
int lvc = methods[0].Body.Statements
    .Count(x => x.Kind == SyntaxKind.LocalDeclarationStatement);
methods.Select(z => new { MethodName = z.Identifier.ValueText, LoC = z.Body.Statements.Count })
    .OrderByDescending(x => x.LoC)
    .ToList()
    .ForEach(x => Console.WriteLine(x.MethodName + " " + x.LoC));
Run Code Online (Sandbox Code Playgroud)

我得到了以下输出

好玩的4

好笑1

但是我在函数中有两个return语句fun.该代码无法在实际设置中编译.使用Roslyn时如何使这些错误消失?

c# roslyn

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

仅通过.net反射获取受保护的成员

这将返回所有非公共实例属性:

var instanceNonPublic = currentType.GetProperties (BindingFlags.Instance |
                                                   BindingFlags.NonPublic);
Run Code Online (Sandbox Code Playgroud)

但有没有办法确定哪个访问修饰符适用于每个属性?private,internal还是protected

.net c# system.reflection

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

我下面在 ObjectStream 中的写作和阅读出了什么问题

下面的代码将我的对象和 byte[] 写入文件,sigBytes 是我的 byte[]

ObjectOutputStream outputOS = new ObjectOutputStream(new FileOutputStream(outputFile));
    outputOS.writeInt(sigBytes.length);
    outputOS.write(sigBytes);
    outputOS.writeObject(text);
    outputOS.close();
Run Code Online (Sandbox Code Playgroud)

然后当我执行下面的代码时,我得到一个 java.io.OptionalDataException

ObjectInputStream inputIS = new ObjectInputStream(new FileInputStream(INPUT));
    int length = inputIS.readInt();
    byte[] sigBytes = new byte[length];
    inputIS.read(sigBytes, 0, length);
    String text = (String) inputIS.readObject();
Run Code Online (Sandbox Code Playgroud)

在我得到的错误下面String text = (String) inputIS.readObject()

java.io.OptionalDataException at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305) at java.io.ObjectInputStream.readObject(ObjectInputStream.java:371) at encryption3.Encryption3.decrypt(Encryption3.java:34) at encryption3 .Encryption3.main(Encryption3.java:53)

编辑我不能让错误以最小的方式重复如下???我真的很累了..

public static void doThings() {

    try {
        File file = new File("C:/edges/input.ext");

        String text = "Hello";
        file.createNewFile();

        byte[] sigBytes = (text).getBytes();

        ObjectOutputStream …
Run Code Online (Sandbox Code Playgroud)

java byte objectoutputstream objectinputstream

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

解析枚举跳过已过时

当我将int值转换为枚举时,如何跳过过时的值?我有以下最小工作示例:

using System;

public class Program
{
    public static void Main()
    {
        int valueInt = 1;
        var en = (TestObsolete)valueInt;
        Console.WriteLine(en);
    }
}

enum TestObsolete
{
    Undefined,
    [Obsolete]
    ValueA = 1,
    ValueB=1,
}
Run Code Online (Sandbox Code Playgroud)

我正在获得ValueA,但期望获得ValueB.特别是我对以下签名的泛型方法感兴趣:

public static T ParseEnumWithoutObsolete<T>(int val) where T: struct {
Run Code Online (Sandbox Code Playgroud)

我试着这样做:

T @enum;
var enumValues = Enum.GetValues(typeof(T)).Cast<T>();
var obsoleteValues = enumValues.Where(a => typeof(T).GetField(a.ToString()).CustomAttributes.Any(t => t is ObsoleteAttribute));
var activeValues = enumValues.Except(obsoleteValues);
Run Code Online (Sandbox Code Playgroud)

但坚持下一步.

c# generics enums

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

c#reflection - 从PropertyInfo获取属性列表

所以,正如标题所说,我有一个对象是propertyInfo.我想得的是那个属性,但我似乎无法找到办法.

首先我有这个方法:

public object GetPropertyInfo(object parent, String propertyName)
    {
        object propInf = null;

        PropertyInfo[] propList = parent.GetType().GetProperties();

        foreach (PropertyInfo pInf in propList)
        {
            if (propertyName == pInf.Name)
            {
                propInf = pInf;
            }
        }

        return propInf;
    }
Run Code Online (Sandbox Code Playgroud)

并且它运行得相当好,假设提供的"父"对象是常规类而不是反射类型.

但是返回的一些属性包含我想要访问的属性.在这些情况下,我需要将PropertyInfo反馈到此方法中,并为该属性获取另一个PropertyInfo.但是,如果我将PropertyInfo对象放入此方法,它只返回PropertyInfo的属性列表(如您所想).

我已经阅读了它,似乎我可能想要的是PropertyInfo类的'GetValue'方法.我有点不确定它,因为我似乎无法解析方法所需的内容.

即便如此,我也是这样写的:

public object GetPropertyInfo(object parent, String propertyName)
    {
        object propInf = null;

        object o = null;

        if (parent is PropertyInfo)
        {
            PropertyInfo p = (parent as PropertyInfo);
            o = p.GetValue(p, null);
        }
        else
            o = parent;

        PropertyInfo[] propList = o.GetType().GetProperties();

        foreach …
Run Code Online (Sandbox Code Playgroud)

.net c# reflection

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

字典列表c#

我想要这样的字典列表字典:

Dictionary <string, List<Dictionary<string,string>> field;
Run Code Online (Sandbox Code Playgroud)

但是visual studio给我发错误:

错误CS0305使用泛型类型'Dictionary'需要2

如何解决这个错误(或者更好地解决我的问题)?

c# string dictionary list

0
推荐指数
2
解决办法
128
查看次数

System.TypeInitializationException:'类型初始值设定项引发了异常。

我有一个简单的类MyClass,它具有在DLL中定义的方法,现在我在另一个代码中引用此DLL,并尝试初始化这样的对象Myclass obj = new MyClass()。我不确定为什么编译器会抛出异常NullReferenceException。请协助

DLL:

public class MyClass
{
    public MyClass(){}
    public void method()
    {
         //some code
    }
}
Run Code Online (Sandbox Code Playgroud)

其他代码:

void main()
{
    MyClass obj=new MyClass(); //This is where I get NullReferenceException error
}
Run Code Online (Sandbox Code Playgroud)

.net c#

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