C# LINQ separate row into two rows based on List<String> property

I have a list of IPInfo objects already filtered in some way. My problem is to separate records based on last List<String> property:

class IPInfo
{
    public String TRADE_DATE; 
    public String CUSTOMER_NAME;
    public List<String> ORIGINAL_IP;
    public List<String> LOGON_IP = new List<String>();
}

List<IPInfo> fields when exported to .xls file looks like this: 


I need each Logon IP record to be in a separate row, but Original IP to remain combined. On a picture, for CITI I need:

----------------------------------------------
10.55.13.104     |   128.110.34.102
128.110.34.102   |
----------------------------------------------
10.55.13.104     |   10.55.13.104
128.110.34.102   |

Any help?

EDIT: this query was applied before to combine duplicated Logon IPs. But, as I told, I need Logon IPs separated

    private static List<IPInfo> selectFields(ref List<IPInfo> fields)
    {
        var distinct =
            fields
                .GroupBy(x => new { x.TRADE_DATE, x.CUSTOMER_NAME })
                .Select(y => new IPInfo()
                {
                    TRADE_DATE = y.Key.TRADE_DATE,
                    CUSTOMER_NAME = y.Key.CUSTOMER_NAME,
                    ORIGINAL_IP = y.SelectMany(x => x.ORIGINAL_IP).Distinct().ToList(),
                    LOGON_IP = y.SelectMany(x => x.LOGON_IP).Distinct().ToList()
                })
                .ToList();
    return distinct;
}


#c-sharp #linq

What is GEEK

Buddha Community

Charles Cooper

1551242379

var distinct = fields
        .GroupBy(x => new { x.TRADE_DATE, x.CUSTOMER_NAME })
        .Select(y => {
            var logonIps = y.SelectMany(x => x.LOGON_IP).Distinct().ToList();

            foreach (var logonIp in logonIps)
            {
                return new IPInfo(){
                    TRADE_DATE = y.Key.TRADE_DATE,
                    CUSTOMER_NAME = y.Key.CUSTOMER_NAME,
                    ORIGINAL_IP = y.SelectMany(x => x.ORIGINAL_IP).Distinct().ToList(),
                    LOGON_IP = logonIp
                };
            }
        })
        .ToList();

return distinct;

Loop through the logonIP list and treat it as new row for each logonIP.

C# LINQ separate row into two rows based on List<String> property

I have a list of IPInfo objects already filtered in some way. My problem is to separate records based on last List<String> property:

class IPInfo
{
    public String TRADE_DATE; 
    public String CUSTOMER_NAME;
    public List<String> ORIGINAL_IP;
    public List<String> LOGON_IP = new List<String>();
}

List<IPInfo> fields when exported to .xls file looks like this: 


I need each Logon IP record to be in a separate row, but Original IP to remain combined. On a picture, for CITI I need:

----------------------------------------------
10.55.13.104     |   128.110.34.102
128.110.34.102   |
----------------------------------------------
10.55.13.104     |   10.55.13.104
128.110.34.102   |

Any help?

EDIT: this query was applied before to combine duplicated Logon IPs. But, as I told, I need Logon IPs separated

    private static List<IPInfo> selectFields(ref List<IPInfo> fields)
    {
        var distinct =
            fields
                .GroupBy(x => new { x.TRADE_DATE, x.CUSTOMER_NAME })
                .Select(y => new IPInfo()
                {
                    TRADE_DATE = y.Key.TRADE_DATE,
                    CUSTOMER_NAME = y.Key.CUSTOMER_NAME,
                    ORIGINAL_IP = y.SelectMany(x => x.ORIGINAL_IP).Distinct().ToList(),
                    LOGON_IP = y.SelectMany(x => x.LOGON_IP).Distinct().ToList()
                })
                .ToList();
    return distinct;
}


#c-sharp #linq

Cayla  Erdman

Cayla Erdman

1599439140

How to sort list in C# with other sorted lists using LinQ

This is a common scenario that we face while working. We want to sort the list based on the different value of its some of the properties. We can achieve this by iterating through the list and putting several conditional statements. However, It might be hectic if we want to sort the list based on more than one property with multiple values for each property.

Image for post

Photo Courtesy: Google

LINQ is a life saviour in such a situation and can save our day. We can achieve the same using very minimal lines of code. We will define the lists for the properties through which we want to sort the array and assign the expected value in the sorted order. Then we will use LINQ to iterate and sort the main list.

Here is the link to the fiddle for working example.

Let’s start by creating a model class for our example.

public class Student {
    public string name {get; set;}
    public string standard { get; set;}
    public string section {get; set;}
    public int rollNumber {get; set;}
}

Each student will have a name along with other information such as the standard they are studying on, section and their roll number.

#linq #sort #c-sharp-programming #dotnet #lists #c#

Tamale  Moses

Tamale Moses

1624240146

How to Run C/C++ in Sublime Text?

C and C++ are the most powerful programming language in the world. Most of the super fast and complex libraries and algorithms are written in C or C++. Most powerful Kernel programs are also written in C. So, there is no way to skip it.

In programming competitions, most programmers prefer to write code in C or C++. Tourist is considered the worlds top programming contestant of all ages who write code in C++.

During programming competitions, programmers prefer to use a lightweight editor to focus on coding and algorithm designing. VimSublime Text, and Notepad++ are the most common editors for us. Apart from the competition, many software developers and professionals love to use Sublime Text just because of its flexibility.

I have discussed the steps we need to complete in this blog post before running a C/C++ code in Sublime Text. We will take the inputs from an input file and print outputs to an output file without using freopen file related functions in C/C++.

#cpp #c #c-programming #sublimetext #c++ #c/c++

Dicey Issues in C/C++

If you are familiar with C/C++then you must have come across some unusual things and if you haven’t, then you are about to. The below codes are checked twice before adding, so feel free to share this article with your friends. The following displays some of the issues:

  1. Using multiple variables in the print function
  2. Comparing Signed integer with unsigned integer
  3. Putting a semicolon at the end of the loop statement
  4. C preprocessor doesn’t need a semicolon
  5. Size of the string matters
  6. Macros and equations aren’t good friends
  7. Never compare Floating data type with double data type
  8. Arrays have a boundary
  9. Character constants are different from string literals
  10. Difference between single(=) and double(==) equal signs.

The below code generates no error since a print function can take any number of inputs but creates a mismatch with the variables. The print function is used to display characters, strings, integers, float, octal, and hexadecimal values onto the output screen. The format specifier is used to display the value of a variable.

  1. %d indicates Integer Format Specifier
  2. %f indicates Float Format Specifier
  3. %c indicates Character Format Specifier
  4. %s indicates String Format Specifier
  5. %u indicates Unsigned Integer Format Specifier
  6. %ld indicates Long Int Format Specifier

Image for post


A signed integer is a 32-bit datum that encodes an integer in the range [-2147483648 to 2147483647]. An unsigned integer is a 32-bit datum that encodes a non-negative integer in the range [0 to 4294967295]. The signed integer is represented in twos-complement notation. In the below code the signed integer will be converted to the maximum unsigned integer then compared with the unsigned integer.

Image for post

#problems-with-c #dicey-issues-in-c #c-programming #c++ #c #cplusplus

What is difference between String and string in C#

Are you confused about System.String and string in C#? What is the difference between String and string in C#? And how to choose between string and System.String? In this article, I am going to show you all the differences between string and System.String in C## with code examples. .

What is the difference between System.String and string in C#?

Basically, there is no difference between string and String in C#. “string” is just an alias of System.String and both are compiled in the same manner. String stands for System.String and it is a .NET Framework type. “string” is an alias in the C## language for System.String. Both of them are compiled to System.String in IL (Intermediate Language), so there is no difference.

#c# #string #string and string