小编Pos*_*Guy的帖子

字符串拆分实用程序方法包含无分隔符时出现问题

我有我创建的以下方法,如果确实有问题的分隔符,它可以正常工作.我想暂时不使用LINQ ...

例如

如果我传入字符串"123; 322; 323",它的效果很好.

但是,如果我只传入一个没有分隔符的字符串值,如"123",它显然不会拆分它,因为没有分隔符.我只是想弄清楚检查和解释这个的最佳方法,并能够在列表中吐出一个值

public static List<int> StringToList(string stringToSplit, char splitDelimiter)
{
    List<int> list = new List<int>();

    if (string.IsNullOrEmpty(stringToSplit))
        return list;

    string[] values = stringToSplit.Split(splitDelimiter);

    if (values.Length < 1)
        return list;

    foreach (string s in values)
    {
        int i;
        if (Int32.TryParse(s, out i))
            list.Add(i);
    }

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

更新:这是我提出的似乎工作,但肯定很长

    public static List<int> StringToList(string stringToSplit, char splitDelimiter)
    {
        List<int> list = new IntList();

        if (string.IsNullOrEmpty(stringToSplit))
            return list;

        if (stringToSplit.Contains(splitDelimiter.ToString()))
        {
            string[] values = stringToSplit.Split(splitDelimiter);

            if (values.Length <= 1) …
Run Code Online (Sandbox Code Playgroud)

c#

7
推荐指数
2
解决办法
8974
查看次数

从静态上下文获取非静态信息的方法

我知道你不能从实例成员中获取静态成员.

但是,让我说我在一个集会中:

public class ClassA
{
    public List<order> GetOrders(int orderID)
    {
        ...
    }
}
Run Code Online (Sandbox Code Playgroud)

然后在另一个集会中:

public static ClassB
{
    private static void DoSomethingElse(int orderID)
    {
        List<order> orderList = ClassA.GetOrders(orderID);
        ...rest of code
    }
}
Run Code Online (Sandbox Code Playgroud)

有没有办法在A类中以其他方式获得该方法...有些解决这个问题?

c#

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

反序列化错误:名称空间''中的XML元素'name'已存在于当前作用域中

这是我第一次使用XML序列化,这让我在尝试排除故障2天后绝对疯了.

反序列化开始时我得到这个错误:

The XML element 'name' from namespace '' is already present in the current scope. Use XML attributes to specify another XML name or namespace for the element.
Run Code Online (Sandbox Code Playgroud)

错误发生在我的代码中的这一行:

Album album = (Album)serializer.Deserialize(reader);
Run Code Online (Sandbox Code Playgroud)

我不确定为什么.没有重复的"名称"节点,所以我只是没有得到它.这是从第三方REST API的HttpWebResponse接收的XML文档.

这是完整的代码:

我的专辑类(我正在反序列化的类型):

    public class Album
    {
        #region Constructors

        public Album() 
        { 

        }

        #endregion

        #region ElementConstants

        public static class ElementConstants
        {
            public const string aID = "aid";
            public const string Owner = "owner";
            public const string AlbumName = "name";
            public const string …
Run Code Online (Sandbox Code Playgroud)

c# xml serialization xml-serialization

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

只选择一半的记录

我试图弄清楚如何选择ID为空的记录的一半.我想要一半,因为我将使用该结果集来更新另一个ID字段.然后我将使用该ID字段的另一个值更新其余部分.

所以基本上我想用一个数字更新一半记录someFieldID,其余用另一个数字将更新基本分割为someFieldID我想要更新的字段的两个值之间.

t-sql

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

存储库的Trunk文件夹?

我正在为Subversion挖掘我们的结构,并且拥有我认为大多数人使用的标准结构,即每个项目使用一个存储库和多个文件夹:

MainRepository
    Project1
       branches
       trunk
       tags
    Project2
       branches
       trunk
       tags
..and so on
Run Code Online (Sandbox Code Playgroud)

我的问题是,我是否需要根MainRepository的trunk,branches和tags文件夹?如果你从行李箱中检查出来,为什么你会说Project1.我不知道我是否需要一个或为什么你需要一个trunk文件夹或其他在repo的实际根目录.

MainRepository
    Project1
       branches
       trunk
       tags
    Project2
       branches
       trunk
       tags
    ...
trunk
branches
tags
Run Code Online (Sandbox Code Playgroud)

svn tortoisesvn

6
推荐指数
2
解决办法
5712
查看次数

名称值对SOAP/WSDL的优点

我看到PayPal等API提供使用NVP或SOAP/WSDL调用他们的服务.使用.NET环境(3.5)时使用传统的Web服务(没有WCF)哪个更好,为什么?我知道WSDL允许您放入API URL并为您生成包装器.那么为什么公司甚至会提供NVP?

rest soap wsdl web-services asmx

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

对象初始化程序和动态指定属性

使用对象初始化程序,是否可以选择包含属性设置?

例如:

Request request = new Request
{
    Property1 = something1,
    if(something)
        Property2 = someting2,                                      
    Property3 = something3
};
Run Code Online (Sandbox Code Playgroud)

c# object-initializers

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

将分隔的字符串推入List <int>

如果我有以下字符串:

"123; 3344; 4334; 12"

我想在一个通用的这些数字List<int>,我想我不知道这里除了在循环分裂,做一个转换,然后添加到一个很好的方式List<int>,通过每一次迭代.有没有其他方法可以解决这个问题?

更新.这就是我想出来的.我想这样做旧时尚的方式,而不是使用LINQ,因为我试图让只用字符串,数组列表和操纵和一般转换更好.

public List<int> StringToList(string stringToSplit, char splitDelimiter)
{
    List<int> list = new List<int>();

    if (string.IsNullOrEmpty(stringToSplit))
        return list;

    string[] values = stringToSplit.Split(splitDelimiter);

    if (values.Length <= 1)
        return list;

    foreach (string s in values)
    {
        int i;
        if (Int32.TryParse(s, out i))
            list.Add(i);
    }

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

这是我计划在每次需要将分隔的字符串列表转换为List时使用的新字符串实用程序方法

如果出现问题,我会将一个空列表返回给调用者.好坏?这样做很常见吗?

是的,有更多的"优雅"的方式与LINQ这样做,但我想这样做manually..the老办法,现在只是我自己的理解.

另外,困扰我的是:

list.AddRange(str.Split(';').Select(Int32.Parse));
Run Code Online (Sandbox Code Playgroud)

是我不知道的:

  1. 如何在那里推送TryParse.
  2. 如果str.Split(';').Select(Int32.Parse)因为某种原因失败了怎么办......那么这个AddRange所处的方法会爆炸,除非我在整个事情中添加一个try/catch,如果我没有正确处理它,我就搞砸了.

c# string parsing

6
推荐指数
2
解决办法
5424
查看次数

如何分配IIS_IUSRS

我无法想象这个IIS_IUSRS组.至于IIS 7.5中的asp.net工作进程,你不必给该组写任何权限(web.config等)吗?

或者IIS_IUSRS是默认运行应用程序池的组,我只需要向该组添加一些用户?

我试图摆脱UNC路径上的权限问题,IIS无法读取web.config并尝试将IIS_IUSRS添加到web.config文件的安全选项卡,但它不知道IIS_IUSRS是什么...当我尝试在Win 7中的Windows资源管理器中搜索用户添加到该文件的安全列表时.

iis-7.5

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

无法打开AssemblyInfo.cs - 未指定错误

在我的解决方案中,我在TFS离线工作了一段时间.我重新上线(TFS),当我尝试编译我的解决方案时,我得到了一个我已添加到此解决方案的项目.

无法打开AssemblyInfo.cs - 未指定错误

我检查过那个文件就在那里所以不确定为什么它不能利用/读取它.

这是一个ASP.NET Web应用程序,它在这里抱怨的项目只是一个常规的C#类库项目.

asp.net-mvc

6
推荐指数
2
解决办法
9810
查看次数